算法设计常用的四种排序
更新时间:2023-10-25 12:15:01 阅读量: 综合文库 文档下载
吉林农业大学算法设计与分析
四种排序方法:
一、选择排序:
1. 初始化一个长度为r[]的数组;
1.1数组下标从1开始; 2. for(i=1;i<=n-1:i++)
2.1 for(j=i+1;j<=n:j++) 2.2 在无序区中找最小记录; 2.3 若最小记录不在最终位置则交换; 二、起泡排序:
1.初始化一个长度为r[]的数组;
1.1数组下标从1开始; 2.for(i=1;i<=n-1;i++) 2.1 for(j=1;j<=n-i;j++) 2.2如果反序,则交换元素; 三、 归并排序:
1.初始化一个长度为r[]的数组; 2.若s==t则r1[s]=r[s]; 2.1 m=(s+t)/2;
2.2 归并排序前半子序列; 2.3 归并排序后半子序列; 2.4 合并两个已排序的子序列;
信息技术学院信息与计算科学Jackiedc
吉林农业大学算法设计与分析
四、快速排序:
1.初始化一个长度为r[]的数组; 2.若开始小于结尾
2.1问题分解,pivot是轴值在序列序列中的位置; 2.2递归地对左侧子序列进行快速排序; 2.3递归地对右侧子序列进行快速排序;
#include
void SelectSort(int r[],int n);
void swap(int& a ,int& b); //交换排序 void BubbleSort(int r[],int n); //起泡排序 void MergeSort(int r[],int r1[],int s,int t); //归并排序
void Merge(int r[],int r1[],int s,int m,int t); //合并有序子序列 void MergeSort(int r[],int r1[],int s,int t); //归并排序 int Partition(int r[],int first,int end); //一次划分 void QuickSort(int r[],int first,int end); //快速排序 int count=0; int number=0; int main() { int r[12]={9,78,25,23,4,68,75,30,26,44,20,33}; int r1[12];
SelectSort(r,12); cout<<\选择排序:\ for(int i(0);i<12;i++) cout< BubbleSort(r,12); cout<<\起泡排序:\ for(int j(0);j<12;j++) cout< MergeSort(r,r1,0,11); cout<<\归并排序运行次数:\ 信息技术学院信息与计算科学Jackiedc 吉林农业大学算法设计与分析 cout<<\归并排序:\ for(int q=0;q<12;q++) cout< QuickSort(r,0,11); cout<<\快速排序运行次数:\ cout<<\快速排序:\ for(int d=0;d<12;d++) cout< void SelectSort(int r[],int n)//选择排序 { int count=0; int index=0; for(int i=0;i<=n-1;i++) { index=i; for(int j=i+1;j<=n;j++){ if(r[j] void swap(int& a ,int& b)//交换 { int c=0; c=a; a=b; b=c; } void BubbleSort(int r[],int n)//起泡排序 { int count=0; for(int i=1;i<=n-1;i++) for(int j=1;j<=n-i;j++) { if(r[j]>r[j+1]) swap(r[j],r[j+1]); count++; } 信息技术学院信息与计算科学Jackiedc 吉林农业大学算法设计与分析 cout<<\起泡排序运行次数:\} void MergeSort(int r[],int r1[],int s,int t)//归并排序 { count++; int m=0;int count=0; if(s==t) r1[s]=r[s]; else { m=(s+t)/2; MergeSort(r,r1,s,m); MergeSort(r,r1,m+1,t); Merge(r1,r,s,m,t); count++; } //cout<<\归并排序运行次数:\ } void Merge(int r[],int r1[],int s,int m,int t)//合并有序子序列 { int i;int j;int k; i=s;j=m+1;k=s; while(i<=m&&j<=t) { if(r[i]<=r[j]) r1[k++]=r[i++]; else r1[k++]=r[j++]; } if(i<=m) while(i<=m) r1[k++]=r[i++]; else while(j<=t) { r1[k++]=r[j++]; } for(int l=0;l<12;l++) r[l]=r1[l]; } int Partition(int r[],int first,int end)//一次划分 { int i;int j; i=first;j=end; //初始化 while(i 信息技术学院信息与计算科学Jackiedc 吉林农业大学算法设计与分析 { while(i void QuickSort(int r[],int first,int end)//快速排序 { number++; int pivot; if(first 信息技术学院信息与计算科学Jackiedc
正在阅读:
算法设计常用的四种排序10-25
2019-2020(精品-1)高中生物综合模拟专题1课题1同步练习(27)09-12
2020年初始之日的心情说说,2020年开启新篇章的心情说说03-03
读书故事作文450字06-19
大学英语六级真题及答案解析07年6月到12年6月完整版05-08
2019年大学生心理健康知识竞赛题135题及答案(多选题)06-01
去年的树说课稿05-16
英语写信格式范文02-17
生活常识题库04-25
墩柱模板计算书03-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 排序
- 常用
- 设计
- C语言期中复习题
- 政策之窗理论下火车票实名制政策分析 - 暑期社会实践报告
- 如何备课与书写教案(讲座稿)
- 榆林盐化工产业的调研报告
- 2018最新以租代售合同协议(房屋)
- 婚书的写法
- 关于2010年度国家励志奖学金和国家助学金 - 图文
- 1812期考0672园林植物造景设计参考答案 - 图文
- 高考语文备考中等生百日捷进提升系列专题议论文写作之观点鲜明含解析
- 必看!!你必须懂得的150个生活小常识(转载)
- 叶绿体色素的提取 - 图文
- 财务管理月考试卷
- ARM 设置用户程序的堆栈
- 2020年《中级财务管理》复习题(三)
- (2013)东民初字第110号原告侯伍梅与被告张雪霖民间借贷纠纷一案一审判决书
- 《房地产估价》课程讲义
- 杭州来福士广场建筑设计方案 - 图文
- 昆明理工大学大学大学生心理健康教育
- 《个人贷款实施细则》题库
- 江苏省公路建设工程项目施工现场安全生产监督检查标准(试行) - 图文