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;
}
}
折半插入排序——算法描述

最近更新

2025年基于stc89c52单片机音乐播放器的设计学.. 15页

2025年商品房代购协议书 4页

2025年和的认识教案 3页

2025年员工个人工作月度总结 10页

2025年吉林省乾安县第七中学高一化学下学期第.. 10页

2025年变更诉讼请求申请书 2页

2025年参军答谢酒会上的主持词 3页

2025年区县直属部门开展群众路线教育实践活动.. 3页

2025年北京交通大学钢筋方案定 20页

2025年动作作文300字 3页

2025年初中语文水之现代文阅读答案 3页

2025年初中作文600字我是这样长大的 2页

供电技术第四版课后题答案市公开课一等奖省赛.. 19页

2025年冬雨季施工专项施工方案 7页

2025年写作素材没必要为小事烦恼 1页

2025年关于期末学生评语 3页

2025年六年级美术上册第3课远去的路教案新人教.. 3页

2025年六年级地理下册8.4澳大利亚练习题无答案.. 2页

2025年公路工程施工竣工总结报告 10页

2025年公司年薪制管理与实施规定 5页

2025年武汉警官职业学院单招职业技能测试题库.. 73页

2025年辽宁经济职业技术学院单招职业技能测试.. 75页

2025年人教版数学七年级下册期末考试试卷及答.. 19页

2025年度新版一级建造师教材 6页

学前班拼音教案全集(共44页) 51页

万科实测检查数据上墙操作指引 17页

维克多新高中英语阅读高一 4页

建筑工程量计算方法(含图与计算公式) 21页

中药材广西甜茶仿野生栽培技术规程-征求意见稿.. 7页

《我的青春期(我的春梦)》电影完整版 2页