数据结构—排序

2019-04-10  本文已影响0人  乳酸菌_c966

内部排序:指待排序记录全部存放在内存中排序的过程。
外部排序:指待排序记录的数量很大,以至于内存不能容纳全部记录,在排序过程中尚需对外存进行访问的过程。

插入排序

1.直接插入排序
先将序列中的第一个记录看成一个有序列,然后从第二个记录开始,逐个进行插入,直至整个序列有序,排序过程为n-1躺插入。

示意图
选择排序

每一次从待排序的数据元素中选出最小的一个元素,存放在已排序列的后面,直到全部待排序的数据元素排完。

1、直接选择排序
在所有记录中选出最小的记录,把它与第一个记录交换,然后在剩余的记录内选出最小的记录与第二个记录交换...依次类推。


示意图

2、堆排序


示意图

堆排序的最坏时间复杂度为O(n倍的log以2为底的n次方),堆排序平均性能接近最坏性能。
堆排序的辅助空间为O(1)。

交换排序

1、冒泡排序

2、快速排序

快速排序最坏时间复杂度O(n的平方),最好时间复杂度为O(n倍的log以2为底的n次方)

归并排序

可以把一个长度为n的无序序列看成是n个长度为1的有序子序列,首先做两两归并,得到n/2个长度为2的有序子序列;再做两两归并,如此重复,直到最后得到一个长度为n的有序序列。

示意图

时间效率:O(nLog以2为底的n次方)
空间效率:O(n)
稳定性:稳定

算法复杂性比较

排序算法时间复杂度表
上一篇下一篇

猜你喜欢

热点阅读