10种常见的排序算法

10种常见的排序算法

ID:26426620

大小:106.50 KB

页数:43页

时间:2018-11-26

10种常见的排序算法_第1页
10种常见的排序算法_第2页
10种常见的排序算法_第3页
10种常见的排序算法_第4页
10种常见的排序算法_第5页
资源描述:

《10种常见的排序算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.冒泡排序已知一组无序数据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]、……a[n]就以升序排列了。 优

2、点:稳定,比较次数已知;缺点:慢,每次只能移动相邻两个数据,移动数据的次数多。 初始关键字[4938659776132749]第一趟排序后[38496576132749]97第二趟排序后[384965132749]7697第三趟排序后[3849132749]657697第四趟排序后[38132749]49657697第五趟排序后[381327]4949657697第六趟排序后[1327]384949657697第七趟排序后[13]27384949657697最后排序结果1327384949767697 #includeusingnamespacestd;void

3、main()  {     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];                    a[j+1]=k;                  }          

4、 }       }         for(i=0;i<8;i++)      cout<

5、[1..i]和R[i+1..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区.这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。 优点:稳定,比较次数与冒泡排序一样;缺点:相对之下还是慢。 初始关键字[4938659776132749]第一趟排序后13[38659776492749]第二趟排序后1327[659776493849]第三趟排序后132738[9776496549]第四趟排序后13273849[49976576]第五趟排序后1327384949[979776]第六趟排序后132738494976[7697]第七趟排序后13273

6、849497676[97]最后排序结果1327384949767697 #includeusingnamespacestd;voidmain(){ 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;j<8;j++)       if(R[j]

7、    cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。