1 / 16
文档名称:

常见排序算法总结.doc

格式:doc   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

常见排序算法总结.doc

上传人:pk5235 2015/6/30 文件大小:0 KB

下载得到文件列表

常见排序算法总结.doc

相关文档

文档介绍

文档介绍:常见排序算法总结【转载+整合】
2009-09-14 15:17
1、稳定排序和非稳定排序
简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法是稳定的。反之,就是非稳定的。要注意的是,排序算法的稳定性是针对所有输入实例而言的。即在所有可能的输入实例中,只要有一个实例使得算法不满足稳定性要求,则该排序算法就是不稳定的。
比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,a3,a5,则我们说这种排序是稳定的,因为a2排序前在a4的前面,排序后它还是在a4的前面。假如变成a1,a4,a2,a3,a5就不是稳定的了。
2、内排序和外排序
在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储顺序,称为内排序;
在排序过程中,只有部分数被调入内存,并借助内存调整数在外存中的存放顺序排序方法称为外排序。
3、算法的时间复杂度和空间复杂度
所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
=======================================

首先新建一个空列表,用于保存已排序的有序数列(我们称之为"有序列表")。
从原数列中取出一个数,将其插入"有序列表"中,使其仍旧保持有序状态。
重复2号步骤,直至原数列为空。
插入排序的平均时间复杂度为平方级的,效率不高,但是容易实现。它借助了"逐步扩大成果"的思想,使有序列表的长度逐渐增加,直至其长度等于原列表的长度。
①.直接插入排序(稳定)
     接插入排序的过程为:在插入第i个记录时,R1,R2,..Ri-1已经排好序,将第i个记录的排序码Ki依次和R1,R2,..,Ri-1的排序码逐个进行比较,找到适当的位置。使用直接插入排序,对于具有n个记录的文件,要进行n-1趟排序。
代码如下:
void Dir_Insert(int A[],int N)   //直接插入排序
{
     int j,t;
     for(int i=1;i<N;i++)
     {
         t=A[i];
         j=i-1;
         while(A[j]>t)
         {
             A[j+1]=A[j];
             j--;
         }
         A[j+1]=t;
     }
}
②.希尔排序(不稳定):
     希尔(Shell)排序的基本思想是:先取一个小于n的整数d1作为第一个增量把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取得第二个增量d2<d1重复上述的分组和排序,直至所取的增量di=1,即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法。
     一般取d1=n/2,di
+1=di/2。如果结果为偶数,则加1,保证di为奇数。
     希尔排序是不稳定的,希尔排序的执行时间依赖于增量序列,其平均时间复杂度为O(n^).
代码如下:
void Shell(int A[],int n)   //Shell排序
{
     int i,j,k,t;
     (n/2)%2 == 0 ? k = n/2+1 : k = n/2; //保证增量为奇数
     while(k > 0)
     {
         for(j=k;j<n; j++)
         {
             t = A[j];
             i = j - k;
             while(i>=0 && A[i]>t)
             {
                 A[i+k]=

最近更新

摄影棚装修合同书3篇 51页

1981年国内研究生入学试题选载(Ⅱ) 2页

1515—75″布机投梭力配置的初探 2页

10吨工频炉熔炼潜力与经济性的探讨 2页

东风日产PPAP表格 22页

质量审核中不合格项的判定 19页

高速铁路CPⅢ测量标志在建筑变形监测中的应用.. 3页

社会资本在社会创新中的作用-全面剖析 26页

非物质文化遗产的传承开发研究——以丝绸之路.. 3页

闭式循环水系统在空气压缩机的应用 3页

铁路固定资产管理的探讨与探究 3页

详解营销渠道管理与渠道设计 68页

7个方面直观幼儿园的幼小衔接是否成熟可行 2页

透水层水中承台沉井围堰施工技术 4页

大数据应用中的内存优化方法-全面剖析 32页

路桥工程施工中的软土地基处理技术探究 3页

超分子聚乙醇类“固-固相变材料”的研究 3页

财政专项资金预算绩效管理初探 3页

试论作者队伍建设的重要性及途径、方法 3页

记者在新闻采访中的作用及沟通技巧的有效应用.. 3页

西门子技术在棒材轧机改造中的应用 3页

行政事业单位固定资产内部控制问题研究 3页

蔗渣纤维素分离纯化预处理工艺条件优化 3页

苏浙沪三省(市)二氧化碳排放现状与影响因素分.. 3页

2025年度个人住房装修贷款协议 7页

2025年商砼站绿色建材应用合作合同 10页

膜类材料标签产品加工溢胶原因分析 3页

聚丙烯纤维机制砂水泥砂浆早期抗裂性能试验研.. 3页

罗定电厂#2汽轮机#1轴瓦温度高的原因分析 3页

综采工作面液压支架回撤技术应用 3页