各种排序比较

来源:互联网 发布:嵌入式linux网络编程 编辑:程序博客网 时间:2024/06/14 20:16

一、被排序对象——文件

        文件由一组记录组成

二、排序运算的依据——关键字

三、排序稳定性

      稳定的排序                                                                      时间复杂度  和     空间复杂度

      冒泡排序                                                      最差、平均都是O(n平方) 最好是O(n)        1

      双向冒泡排序                                              最差、平均都是O(n平方)最好是O(n)      1

      插入排序                                                      最差、平均都是O(n平方)最好是O(n)      1

      归并排序                                                       最差、平均、最好都是O(nlogn)                   O(n)

      桶排序                                                                              O(n)                                               O(K)

      基数排序                                                                           O(dn)(d是常数)                           O(n)

      二叉树排序                                                                       O(nlogn)                                      O(n)

      图书馆排序                                                                       O(nlogn)                                  (1+e)n


      不稳定的排序                                                                 时间复杂度  和  空间复杂度     

         选择排序                                                            最差、平均都是O(n平方)                       1

         希尔排序                                                                         O(nlogn)                                      1

         堆排序                                                               最差、平均、最好都是O(nlogn)            1

         快速排序                                                           平均O(nlogn) 最坏情况O(n平方)      O(logn)

四、排序方法的分类

     1. 按是否涉及数据的内、外存交换分

     2. 按策略划分内部排序方法: 插入排序、选择排序、交换排序、归并排序、分配排序

五、排序算法的基本操作

      1. 比较两个关键字大小

      2. 改变指向记录的指针或移动记录本身

六、待排文件的常用存储方式

七、排序算法性能评价

      1. 评价排序算法好坏的标准:执行时间和所需辅助空间   算法本身的复杂度

      2. 排序算法的空间复杂度

      3. 排序算法的时间开销  依赖于关键字之间的比较和排序

MARK 待分析每一个排序