您的位置:首页 > 其它

排序比较

2016-02-27 13:22 211 查看

插入排序:

直接插入排序:依次将待排序的序列插入到已排序的序列。

时间复杂度:goodO(n) bad(n*2)

空间复杂度O(0)

稳定性:稳定

希尔排序:将待排序列分成若干组,每组进行插入排序。

时间复杂度:O(nlogN)

空间复杂度O(0)

稳定性:不稳定

交换排序:

快排:前后两个指针比K值大的放到后面,比K值小的放到前面。递归实现。

时间复杂度:goodO(nlogN) bad(n*2) ,

空间复杂度O(0)

稳定性:不稳定

冒泡:每次选出一个最大的放到末尾。

时间复杂度:good O(n) bad(n*2)

空间复杂度O(0)

稳定性:稳定

选择排序:

简单选择排序:每次选择一个最小的与无序区的第一个进行交换。

时间复杂度:good O(n) bad(n*2)

空间复杂度O(0)

稳定性:不稳定

堆排序:因为是完全二叉树顺序存储,初始堆从n/2即第一个非叶子结点处开始开始建堆。交换后看是否稳定,如果不稳定再次向下交换。

首先将待排序区构造一个堆,将堆顶数据移除,并将剩下的在调整成堆。和快排相比,对初始状态并不敏感,只需要一个额外存储空间,来暂缓数据。

时间复杂度:O(nlogN)

空间复杂度O(1)

稳定性:不稳定

归并排序:

归并排序:将若干个有序序列进行两两归并,合并成一个有序队列。

时间复杂度:O(nlogN) 空间复杂度O(N)

稳定性:稳定

分配排序:

桶排序:时间复杂度:O(n+m) 空间复杂度O(m)

稳定性:不稳定

基数排序:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: