欢迎来到天天文库
浏览记录
ID:34442239
大小:223.67 KB
页数:43页
时间:2019-03-06
《分享01种常见的排序算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、可达01.冒泡排序已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比较a[3]与a[4],以此类推,最后比较a[n-1]与a[n]的值。这样处理一轮后,a[n]的值一定是这组数据中最大的。再对a[1]~a[n-1]以相同方法处理一轮,则a[n-1]的值一定是a[1]~a[n-1]中最大的。再对a[1]~a[n-2]以相同方法处理一轮,以此类推。共处理n-1轮后a[1]、a[
2、2]、……a[n]就以升序排列了。 优点:稳定,比较次数已知;缺点:慢,每次只能移动相邻两个数据,移动数据的次数多。 初始关键字[4938659776132749]第一趟排序后[38496576132749]97第二趟排序后[384965132749]7697第三趟排序后[3849132749]657697第四趟排序后[38132749]49657697第五趟排序后[381327]4949657697第六趟排序后[1327]384949657697第七趟排序后[13]27384949657697最后排序结果1327384949767697 #incl
3、udeusingnamespacestd;voidmain() ksksk可达0{ inti,j,k; inta[8]={49,38,65,97,76,13,27,49}; for(i=7;i>=0;i--) { for(j=0;ja[j+1]) { k=a[j]; a[j]=a[j+1]
4、; a[j+1]=k; } } } for(i=0;i<8;i++) cout<5、当前有序区和无序区分别为R[1..i-1]和R[i..n](1≤i≤n-1)。该趟排序从当前无序区中选出关键字最小的记录R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区.这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。 优点:稳定,比较次数与冒泡排序一样;缺点:相对之下还是慢。 初始关键字[4938659776132749]第一趟排序后13[38659776492749]第二趟排序后1327[659776493849]第三趟排序后136、2738[9776496549]第四趟排序后13273849[49976576]第五趟排序后1327384949[979776]第六趟排序后132738494976[7697]第七趟排序后13273849497676[97]最后排序结果1327384949767697 #includeusingnamespacestd;voidksksk可达0main(){ inti,j,k,t; intR[8]={49,38,65,97,76,13,27,49}; for(i=0;i<7;i++) { k=i; for(j=i+17、;j<8;j++) if(R[j]8、1]比较,如果a小于b[1];则将b[2],b[1]依次后移;在将a放在b[1]处以此类推,直到排序结束。初
5、当前有序区和无序区分别为R[1..i-1]和R[i..n](1≤i≤n-1)。该趟排序从当前无序区中选出关键字最小的记录R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区.这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。 优点:稳定,比较次数与冒泡排序一样;缺点:相对之下还是慢。 初始关键字[4938659776132749]第一趟排序后13[38659776492749]第二趟排序后1327[659776493849]第三趟排序后13
6、2738[9776496549]第四趟排序后13273849[49976576]第五趟排序后1327384949[979776]第六趟排序后132738494976[7697]第七趟排序后13273849497676[97]最后排序结果1327384949767697 #includeusingnamespacestd;voidksksk可达0main(){ inti,j,k,t; intR[8]={49,38,65,97,76,13,27,49}; for(i=0;i<7;i++) { k=i; for(j=i+1
7、;j<8;j++) if(R[j]8、1]比较,如果a小于b[1];则将b[2],b[1]依次后移;在将a放在b[1]处以此类推,直到排序结束。初
8、1]比较,如果a小于b[1];则将b[2],b[1]依次后移;在将a放在b[1]处以此类推,直到排序结束。初
此文档下载收益归作者所有