《C语言知识学习程序设计-排序法比较.ppt》由会员分享,可在线阅读,更多相关《C语言知识学习程序设计-排序法比较.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,用冒泡法对5个整数按从小到大的顺序排列输出。 排序的方法很多,主要有: 冒泡法 选择法,第1轮比较4次:第1次 21 13 90 32 -1 进行交换,第2次 13 21 90 32 -1 不进行交换,第3次 13 21 90 32 -1 进行交换,第4次 13 21 32 90 -1 进行交换,第1轮比较结果: 13 21 32 -1 90,最大的数已排好,应用举例(排序:冒泡法),用冒泡法对n个数从小到大排序。 假定有5个无序的数 21,13,90,32,-1,第2轮比较3次:第1次 13 21 32 -1 90 不进行交换,第2次 13 21 32 -1 90 不进行交换,第3次 13
2、 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 进行交换,第4轮比较结果: -1 13 21 32 90,应用举例(排序:冒泡法)续,第i轮比较,第j次比较,应用举例(排序:冒泡法)续,for(i=1;iaj+1) med=aj; aj=aj+1; aj+1=med;,第1轮比较4次:第1次p=0 21 13 90 32 -1 p=1,第2次 2
3、1 13 90 32 -1 p=1,第3次 21 13 90 32 -1 p=1,第4次 21 13 90 32 -1 p=4,第1轮比较交换21和-1: -1 13 90 32 21,最小的数已排好,应用举例(排序:选择法),用选择法对n个数从小到大排序。 假定有5个无序的数 21,13,90,32,-1,第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,第3轮比较2次:第1次p=2 -1 13 90 32 21 p=3,第2次
4、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轮比较不用交换: -1 13 21 32 90,应用举例(排序:选择法)续,应用举例(排序:选择法)续,for(i=0;in-1;i+) p=i; for(j=i+1;jn;j+) if(ajap) p=j; med=ap; ap=ai; ai=med; ,冒泡法: 两个相邻的数依次进行比较; 比较完立刻进行交换,最多交换n(n-1)/2次,选择法: 用当前比较过的数中最小的数依次与后面的数进行比较; 一轮比较完进行一次交换,最多交换n-1次,