排序算法的学习

算法的稳定性

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

 

  1. 稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序

  2. 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序

 

 

内部排序是数据记录在内存中进行排序。

 

而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。

关于时间复杂度:

 

  1. 平方阶 (O(n2)) :直接插入、直接选择和冒泡排序。

  2. 线性对数阶 (O(nlog2n)) : 快速排序、堆排序和归并排序;

  3. O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数: 希尔排序

  4. 线性阶 (O(n)) : 基数排序,此外还有桶、箱排序

 

posted @ 2019-05-08 21:40  liangdao  阅读(105)  评论(0)    收藏  举报