1 / 55
文档名称:

常用排序算法.ppt

格式:ppt   大小:568KB   页数:55页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

常用排序算法.ppt

上传人:文库新人 2018/9/30 文件大小:568 KB

下载得到文件列表

常用排序算法.ppt

文档介绍

文档介绍:内部排序: 指的是待排序记录存放在计算机随机存储器中进行的排序过程。
外部排序: 指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。
内部排序与外部排序
假设 Ki = Kj ,且排序前序列中 Ri 领先于 Rj ;
若在排序后的序列中 Ri 仍领先于 Rj ,则称排序方法是稳定的。
若在排序后的序列中 Rj 仍领先于 Ri ,则称排序方法是不稳定的。
例,序列 3 15 8 8 6 9
若排序后得 3 6 8 8 9 15
稳定的
若排序后得 3 6 8 8 9 15
不稳定的
排序衡量指标——稳定性
排序衡量指标——时间复杂度
排序过程主要是对记录的排序码进行比较和记录的移动过程。
排序的时间复杂性可以算法执行中的数据比较次数及数据移动次数来衡量。
当一种排序方法使排序过程在最坏或平均情况下所进行的比较和移动次数越少,则认为该方法的时间复杂性就越好,分析一种排序方法,不仅要分析它的时间复杂性,而且要分析它的空间复杂性、稳定性等。
按照排序过程中所依据的原则的不同可以分类为:
插入排序
交换排序(快速排序)
选择排序
归并排序
基数排序
二叉排序树排序
内部排序
思想: 利用有序表的插入操作进行排序
有序表的插入: 将一个记录插入到已排好序的有序表中,从而得到一个新的有序表。
例,序列 13 27 38 65 76 97
插入 49
13 27 38 49 65 76 97
插入排序——直接插入排序
直接插入排序——算法描述
例,序列 49 38 65 97 76 13 27
初始,S = { 49 } ;
{ 38 49 }
初始,令第 1 个元素作为初始有序表;
依次插入第 2 , 3 , …, k 个元素构造新的有序表;
直至最后一个元素;
{ 38 49 65 }
{ 38 49 65 97 }
{ 38 49 65 76 97 }
{ 13 38 49 65 76 97 }
{ 13 27 38 49 65 76 97 }
直接插入排序算法主要应用比较和移动两种操作。
void Insert(ArrNode * pnum)
{
for (i = 1; i < Len; i++) {
tmp = pnum[i];
for (j = i; j > 0 && < pnum[j - 1].key; j--) {
pnum[j] = pnum[j - 1];
}
pnum[j] = tmp;
}
}
直接插入排序——算法描述
时间复杂度分析:
外层循环要进行n-1次插入,每次插入最少比较一次(正序),移动两次;最多比较i次,移动i+2次(逆序)(i=1,2,…,n-1)。
Cmin=n-1 M min=2(n-1)
Cmax=1+2+…+n-1=(n2-n)/2
M max=3+4+…+n+1=(n2+3n-4)/2
Cave=(n2+n-2)/4
M max=(n2+7n-8)/4
因此,直接插入排序的时间复杂度为O(n2)。
直接插入算法的元素移动是顺序的,该方法是稳定的。
直接插入排序的效率分析
由于直接插入排序算法利用了有序表的插入操作,故顺序查找操作可以替换为折半查找操作。
例,序列 49 38 65 97 76 13 27
设已形成有序表{ 38 49 65 97 76 }
插入元素 13
折半插入排序
void BinaryInsertSort( ArrNode *pnum ,int L)
{ for(int i=1; i<L; i++) //共进行n-1次插入
{int left=0,right=i-1; temp=pnum[i];
while(left<=right)
{ int middle=(left+right)/2; //取中点
if(temp<pnum[middle])
right=middle-1; //取左区间
else
left=middle+1; //取右区间
} for(int j=i-1;j>=left;j--)
pnum[j+1]=pnum[j]; //元素后移空出插入位
pnum[left]=temp;
}
}
折半插入排序——算法描述

最近更新

关于我省生猪问题的分析预测和对策建议 2页

2025年肌萎缩侧索硬化症全面解析 22页

2025年生物处理设备项目合作计划书 63页

2025年硼酸盐项目建议书 51页

2025年糖尿病运动疗法效果探究 35页

关于工业机器人回转驱动部分动态特性的研究 2页

2025年糖尿病患者运动康复指南 32页

关于多维数组排序优化算法的探讨 2页

关于国际贸易中保障措施的若干问题探讨 2页

关于发展高效率异步电动机系列的初步探讨(二).. 2页

关于印度的发展道路问题的讨论 2页

关于价格改革中几个理论与政策问题的思考 2页

关于中等城市“智慧城市”建设的相关问题的探.. 2页

2025年昏迷急救处理与临床诊断策略 46页

《银行客户经理认知》 9页

2025年护士心理健康危机的应对策略 60页

六二年提高产品质量、加强技术管理的收获和体.. 2页

八十年代对宇航材料和工艺的要求 2页

人教版小学三年级英语下册第四单元第一课时 12页

全国首届有色金属材料应用技术交流会在湘召开.. 2页

全国第二届加筋土技术经验交流会简介 2页

2025年大学生常见心理困扰解析 33页

2025年均衡膳食乐享健康 41页

2025年呼吸衰竭患者护理要点探讨 49页

2025年古籍揭秘无花果神奇功效助力抗癌促消化.. 7页

光敏性单克隆抗体的制备及其杀伤细胞的探索 2页

小学科学教科版五年级下册第二单元《船的研究.. 4页

比例的意义公开课省公开课金奖全国赛课一等奖.. 19页

建筑桩基技术规范 4页

爱华仕箱包营销推广方案 33页