内部排序总结

温故而知新!

分类:

1. 插入排序

  思想:其基本操作为将一个记录插入到已排好序的有序表中,从而使有序序列增1

  • 直接插入排序:基于顺序查找而得到插入位置
  • 折半插入排序:基于折半查找而得到插入位置(仅减少关键字比较次数)

  二者的记录移动次数相等,所以时间复杂度均为O(n^2)

  直接插入排序伪代码:

2. 交换排序:

  • 冒泡排序
  • 快速排序(对冒泡的改进)

    前者平均复杂度O(n^2),后者平均复杂度O(nlogn)

3. 选择排序:

  基本思想:每一趟在n-i+1个记录中选出关键字最小的记录并作为有序记录中的第i个记录。

  • 简单选择排序:通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i (1<= i <= n)个记录交换之。O(n^2)

  • 堆排序

4. 归并排序

时间复杂度:O(nlogn);空间复杂度:O(n);稳定的排序算法

 

posted on 2013-08-27 22:35  -赶鸭子上架-  阅读(191)  评论(0编辑  收藏  举报