各排序算法性能分析

来源:互联网 发布:苹果udid定制软件 编辑:程序博客网 时间:2024/05/01 16:05
插入排序:最坏时间始n^2
快速排序和插入排序的区别是:插入排序始将关键字插入已排序的子序列中,而快速排序始>对整个文件,把基准关键字放到正确的位置上。
快排最坏时间依然是n^2, 平均时间始nlgn。

在堆排序:的过程中只需一个辅助空间!所以空间 复杂度为 0(1)
堆排序的时间复杂度为 nlgn;
由于堆排序过程需要进行任意位置上记录的移动:; 待筛结点值存放于辅助单元中
和交换!所以它是一种不稳定的

二路归 并 排 序: 的时间复杂度为nlgn;
二路归并排序时需要利用一个同待排序数组一样
大小的辅助数组"所以空间复杂度为哦o(n)同时"二路归并排序也是一种稳定的排序方法&

希 尔 排 序: 的 事 件 复 杂 度 介 与nlgn 和 n^2 之间;空间辅助为o(1);
希尔排序是不稳定的排序算法&
由以上对各种排序算法性能的分析和比较 "我们 可
以得出如下结论"
  当排序记录数n较大时若要求排序稳定则 采用归并排序
  当 排 序 记 录 数 n 较 大 "关 键 字 会 出 现 正 (逆) 序 情 行,则可以用堆排序和

归并排序;

当排序记录数n较大时若要求排序稳定则 采用归并排序
  当 排 序 记 录 数 n 较 大 "关 键 字 会 出 现 正 (逆) 序 情 行,则可以用堆排序和
归并排序;
  当 排 序 记 录 数  较 大 "关 键 字 分 布 随 机 "而 且 不要求稳定排序,则可用快>速排序;
  当 排 序 记 录 数 n 较 小 "记 录 已 接 近 有 序 或 随 机 分
布时"又要求排序稳定"可采用直接插入排序
  当 排 序 记 录 数 n 较 小 "且 对 稳 定 性 不 作 要 求 时 可采用直接选择排序

                                      

0 0
原创粉丝点击