没有合适的资源?快使用搜索试试~ 我知道了~
数据结构中几种排序算法分析比较
4星 · 超过85%的资源 需积分: 9 23 下载量 189 浏览量
2010-12-23
22:11:35
上传
评论
收藏 119KB DOC 举报
温馨提示
试读
12页
数据结构报告,包括插入排序(直接插入排序、希尔排序),交换排序(起泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序、分配排序的基本思想、复杂度分析以及稳定行分析。
资源推荐
资源详情
资源评论
数据结构中几种排序算法比较分析
目录
1 插入排序..........................................................................................................................................2
1.1 直接插入排序.......................................................................................................................2
1.1.1 基本思想.................................... ............. ............. ............. ............. ............. ............. 2
1.1.2 复杂度分析.................................... ............. ............. ............. ............. ............. .........2
1.1.3 稳定性分析.................................... ............. ............. ............. ............. ............. .........3
1.2 希尔排序...............................................................................................................................3
1.2.1 基本思想.................................... ............. ............. ............. ............. ............. ............. 3
1.2.2 复杂度分析.................................... ............. ............. ............. ............. ............. .........3
1.2.3 稳定性分析.................................... ............. ............. ............. ............. ............. .........4
2 交换排序..........................................................................................................................................4
2.1 起泡排序...............................................................................................................................4
2.1.2 复杂度分析.................................... ............. ............. ............. ............. ............. .........4
2.1.3 稳定性分析.................................... ............. ............. ............. ............. ............. .........5
2.2 快速排序...............................................................................................................................5
2.2.1 基本思想.................................... ............. ............. ............. ............. ............. ............. 5
2.2.2 复杂度分析.................................... ............. ............. ............. ............. ............. .........5
2.2.3 稳定性分析.................................... ............. ............. ............. ............. ............. .........5
3 选择排序..........................................................................................................................................6
3.1 直接选择排序.......................................................................................................................6
3.3.2 复杂度分析.................................... ............. ............. ............. ............. ............. .........6
3.3.3 稳定性分析.................................... ............. ............. ............. ............. ............. .........6
3.2 堆排序...................................................................................................................................7
3.3.2 复杂度分析.................................... ............. ............. ............. ............. ............. .........7
3.3.3 稳定性分析.................................... ............. ............. ............. ............. ............. .........7
4 归并排序..........................................................................................................................................8
4.1 基本思想...............................................................................................................................8
4.2 复杂度分析...........................................................................................................................8
4.3 稳定性分析...........................................................................................................................8
5 分配排序(多关键字排序)..........................................................................................................8
数据结构中几种排序算法比较分析
1 插入排序
1.1 直接插入排序
1.1.1 基本思想
假设数组的前i个结点序列a1,a2,……,ai-1是已排序好的,称为有序区,
i后面的n-i+1个序列ai,ai+1,……,an是无序区。对结点ai在这有序结点列中找
插入位置,并将ai插入,而使i个结点a1,a2,……,ai-1也变成排序的,成为
新的有序区。依次对i=2,……,n分别执行这样的插入步骤, 最终实现线行表
的排序。
那么一般情况下,对于采用插人排序法去排序的一组数,可以先选取第一
个数作为已经排好序的一组数,然后把第二个放到正确位置。依此类推就完成
排序功能。
1.1.2 复杂度分析
对n 个结点的线性表采用直接插入排序, 当线性表已是从小到大排序时,只
须作一次比较, 整个排序的过程只进行n-1次比较,总的移动次数为2(n-1)。
当线性表已是从大到小排序时,这是最坏的情况,这时的比较次数和移动次数
分别为:
比较次数的最大值=
移动次数的最大值=
数据结构中几种排序算法比较分析
1.1.3 稳定性分析
直接插入排序是稳定的。
1.2 希尔排序
1.2.1 基本思想
希尔算法的本质是对直接插入排序算法的改进。将待排记录序列
{a1,a2,……,ai,ai+1,……,a2i,a2i+1,……,a3i,a3i+1,
……,an}以一定的增量间隔h 分割成多个子序列{ a1,ai,a2i,a3i,
……},{ a2,ai+1,a2i+1,a3i+1,……},……,{ai-1,a2i-1,
……,an},对每个子序列分别进行一趟直接插入排序, 然后逐步减小分组的步
长i,对于每一个步长i下的各个子序列进行同样方法的排序,直到步长为1时再
进行一次整体排序。
1.2.2 复杂度分析
由于待排序列记录的个数n、跳跃分组步长i逐步减小直到为1时所进行的扫
描次数T、增量的和、记录关键字比较的次数以及记录移动的次数或诸子序列
中的反序数等因素都影响希尔算法的时间复杂度:其中记录关键字比较的次数
是重要因素,它主要取决于分组步长序列的选择。因此目前还无法分析出希尔
排序的复杂度。
但是Knuth的统计结果是,平均比较次数和对象平均移动次数在 与
之间。
剩余11页未读,继续阅读
资源评论
- yoyoforevermark2012-10-15对初学者挺有用。能区分几种排序的异同。
- 逆风飞行的鱼2015-11-24对于初学者,很实用
- ken4510163942014-02-13可惜了,只有文字没有代码
RefreshRabbit
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功