10种排序算法总结

10种排序算法总结

ID:19415877

大小:57.00 KB

页数:21页

时间:2018-10-02

10种排序算法总结_第1页
10种排序算法总结_第2页
10种排序算法总结_第3页
10种排序算法总结_第4页
10种排序算法总结_第5页
资源描述:

《10种排序算法总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、10种排序算法总结10种排序算法总结排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准:(1)执行时间(2)存储空间(3)编程工作对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。主要排序法有:一、冒泡(Bubble)排序——相邻交换二、选择排序——每次最小大排在相应的位置三、插入排序——将下一个插入已排好的序列中四、壳(Shell)排序——缩小增量五、归并排序六、快速排序七、堆排序八、拓扑排序九、锦标赛排序十、基数排序一、冒泡(Bubble)排序-----------

2、-----------------------Code从小到大排序n个数------------------------------------voidBubbleSortArray(){for(inti=1;in;i++){for(intj=0;in-i;j++){if(a[j]a[j+1])比较交换相邻元素{inttemp;temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}-------------------------------------------------Code-----------------------------

3、-------------------效率O(n2),适用于排序小列表。二、选择排序----------------------------------Code从小到大排序n个数--------------------------------voidSelectSortArray(){intmin_index;for(inti=0;in-1;i++){min_index=i;for(intj=i+1;jn;j++)每次扫描选择最小项if(arr[j]arr[min_index])min_index=j;if(min_index!=i)找到最小项交换,即将这一项移到

4、列表中的正确位置{inttemp;temp=arr[i];arr[i]=arr[min_index];arr[min_index]=temp;}}}-------------------------------------------------Code-----------------------------------------效率O(n2),适用于排序小的列表。三、插入排序--------------------------------------------Code从小到大排序n个数------------------------------------

5、-voidInsertSortArray(){for(inti=1;in;i++)循环从第二个数组元素开始,因为arr[0]作为最初已排序部分{inttemp=arr[i];temp标记为未排序第一个元素intj=i-1;while(j=0&&arr[j]temp)将temp与已排序元素从小到大比较,寻找temp应插入的位置{arr[j+1]=arr[j];j--;}arr[j+1]=temp;}}------------------------------Code--------------------------------------------------

6、------------最佳效率O(n);最糟效率O(n2)与冒泡、选择相同,适用于排序小列表若列表基本有序,则插入排序比冒泡、选择更有效率。四、壳(Shell)排序——缩小增量排序-------------------------------------Code从小到大排序n个数-------------------------------------voidShellSortArray(){for(intincr=3;incr0;incr--)增量递减,以增量3,2,1为例{for(intL=0;L(n-1)incr;L++)重复分成的每个子列表{for(in

7、ti=L+incr;in;i+=incr)对每个子列表应用插入排序{inttemp=arr[i];intj=i-incr;while(j=0&&arr[j]temp){arr[j+incr]=arr[j];j-=incr;}arr[j+incr]=temp;}}}}--------------------------------------Code-------------------------------------------适用于排序小列表。效率估计O(nlog2^n)~O(n^1.5),取决于增量值的最初大小。建议使用质数作为增量值,因为如果增量值是2的

8、幂,则在下

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

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

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