C语言程序设计-排序法比较

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3轮比较2次:第1次p=2 -1 13 90 32 21 p=3 第2次p=3 -1 13 90 32 21 p=4
第3轮比较交换90与21: -1 13 21 32 90
第4轮比较1次:第1次p=3 -1 13 21 32 90 p=3
第4轮比较不用交换:
6
精选课件
-1 13 21 32 90
应用举例(排序:选择法)续
第3次 13 21 90 32 -1 进行交换 第4次 13 21 32 90 -1 进行交换
第1轮比较结果:
13 21 32 -1 90
2
精选课件
最大的数已排好
应用举例(排序:冒泡法)续
第2轮比较3次:第1次 13 21 32 -1 90 不进行交换
第2次 13 21 32 -1 90 不进行交换
的数进行比较; 比较完立刻进
行交换,最多 一轮比较完进行一次 交换n(n-1)/2次 交换,最多交换n-1次
8
精选课件
for(i=0;i<n-1;i++) {p=i; for(j=i+1;j<n;j++) if(a[j]<a[p]) p=j; med=a[p]; a[p]=a[i]; a[i]=med; }
7
精选课件
冒泡法:
选择法:
两个相邻的数 用当前比较过的数中 依次进行比较; 最小的数依次与后面
第4轮比较结果:
3
精选课件
-1 13 21 32 90
应用举例(排序:冒泡法)续
for(i=1;i<=n-1;i++) for(j=0;j<n-i;j++)
第i轮 比较
if(a[j]>a[j+1]) {med=a[j]; a[j]=a[j+1];
第j次 比较
a[j+1]=med;}
4
精选课件
第1轮比较交换21和-1: -1 13 90 32 21
5
精选课件
最小的数已排好
应用举例(排序:选择法)续
第2轮比较3次:第1次p=1 -1 13 90 32 21 p=1 第2次p=1 -1 13 90 32 21 p=1 第3次p=1 -1 13 90 32 21
第2轮比较不用交换: -1 13 90 32 21
用冒泡法对5个整数按从小到大的顺序排列输出。 排序的方法很多,主要有: 冒泡法 选择法
1
精选课件
应用举例(排序:冒泡法)
用冒泡法对n个数从小到大排序。 假定有5个无序的数 21,13,90,32,-1
第1轮比较4次:第1次 21 13 90 32 -1 进行交换
第2次 13 21 90 32 -1 不进行交换
应用举例(排序:选择法)
用选择法对n个数从小到大排序。 假定有5个无序的数 21,13,90,32,-1
Fra Baidu bibliotek
第1轮比较4次:第1次p=0 21 13 90 32 -1 p=1
第2次 21 13 90 32 -1 p=1
第3次 第4次
21 13 90 32 -1 p=1 21 13 90 32 -1 p=4
第3次 13 21 32 -1 90 进行交换
第2轮比较结果:
13 21 -1 32 90
第3轮比较2次:第1次 13 21 -1 32 90 不进行交换
第2次 13 21 -1 32 90 进行交换
第3轮比较结果:
13 -1 21 32 90
第4轮比较1次:第1次 13 -1 21 32 90 进行交换
相关文档
最新文档