资源描述:
《常见的排序算法 - fangzhen - 博客园》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2014年5月5日常见的排序算法-Fangzhen-博客园追随技术WithPassion学如逆水行舟,不进则退随笔-334,文章-174,评论-56,引用-0导航常见的排序算法博客园首页总结一下常见的排序算法。新随笔联系排序分内排序和外排序。订阅管理内排序:指在排序期间数据对象全部存放在内存的排序。<2012年7月>外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,日一二三四五六24252627282930不断在内、外存之间移动的排序。1234567内排序的方法有许多种,按所用策略不同,可归
2、纳为五类:插入排序、选择排序、交换排89101112131415161718192021序、归并排序、分配排序和计数排序。22232425262728插入排序主要包括直接插入排序,折半插入排序和希尔排序两种;2930311234选择排序主要包括直接选择排序和堆排序;公告昵称:Fangzhen交换排序主要包括冒泡排序和快速排序;园龄:3年1个月归并排序主要包括二路归并(常用的归并排序)和自然归并。粉丝:139关注:2分配排序主要包括箱排序和基数排序。+加关注计数排序就一种。搜索找找看稳定排序:假设在待排序的文件中,存在两个或
3、两个以上的记录具有相同的关键字,在用某谷歌搜索种排序法排序后,若这些相同关键字的元素的相对次序仍然不变,则这种排序方法是稳定常用链接的。我的随笔其中冒泡,插入,基数,归并属于稳定排序;选择,快速,希尔,堆属于不稳定排序。我的评论我的参与下面是对这些常见排序算法的介绍。未来测试代码的正确性,我们采取了随机生成10个最新评论我的标签序列,然后先使用C++STL中给出的排序算法sort来得到一个正确的排序,然后再使用我的标签我们的方法进行排序得到结果,通过对比这两者的结果来验证我们代码的正确性。H.264(16)x264(12)
4、测试代码如下:JM(11)C与C++区别(7)volatile(7)虚函数(7)voidsort_test(void(*_sort)(int*,int)){程序员(6)const(6)constintN=10;static(6)intorig[N];随机数(5)intstandard[N];更多intarr[N];随笔分类(281)srand(time(0));Algorithm(19)for(intj=0;j<15;j++){Algorithm笔记(2)for(inti=0;i5、[i]=rand()%100;//随机生成序列C/C++编程(70)cout<<"bef:";DataStructure(1)print(orig,N);DataStructure笔记(11)Fedora配置(19)H.264/JM(30)copy(orig,orig+N,standard);Hardware(1)sort(standard,standard+N);//利用sort函数进行排序Interviewcout<<"std:";IT技术(1)print(standard,N);Linux笔记(11)Linux编程c
6、opy(orig,orig+N,arr);Linux学习(1)Matlab技术(3)_sort(arr,N);//采用我们的方法进行排序MPEG系列cout<<"aft:";Networksprint(arr,N);Opencv学习(1)if(equal(standard,standard+N,arr))//测试我们的方法是否正确OperatingSys(13)printf("%sOK%s",green,normal);Shell笔记(5)elseShell编程(7)Softwares(1)printf("%sNO%s
7、",red,normal);UsefulProgs(9)}VideoCodec(7)}Windows技术X264编程语言(2)其中参数是要测试的方法,void(*_sort)(int*,int)是排序方法的指针,我们所有的排多媒体技术随笔档案(335)序方法都写成这种形式。2013年7月(2)2013年6月(1)1.直接插入排序2012年11月(48)2012年10月(31)直接插入排序(straightinsertionsort)的作法是:每次从无序表中取出第一个元素,把它插入到有序表2012年8月(42)2012年
8、7月(66)的合适位置,使有序表仍然有序。2012年6月(15)2012年5月(14)第一趟比较前两个数,然后把第二个数按大小插入到有序表中;第二趟把第三个数据与前两个数从后向2012年4月(33)前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序2012年