排序算法的稳定性、时间和空间复杂度

来源:互联网 发布:js点击加号输入框加一 编辑:程序博客网 时间:2024/05/28 18:43

排序算法的依据——关键字

关键字的稳定性应根据具体问题而定。

排序的稳定性

当待排序记录的关键字均不相同时,排序结果是唯一的,否则排序结果不唯一。若存在多个关键字相同的记录,经过排序后,这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;否则称这种排序方法是不稳定的。

稳定的排序

稳定的排序(sort) 时间复杂度 空间复杂度 气泡排序(bubble) 最差、平均都是O(n^2);最好是O(n) 1 鸡尾酒排序(Cocktail,双向的冒泡排序) 最差、平均都是O(n^2);最好是O(n) 1 插入排序(insertion) 最差、平均都是O(n^2);最好是O(n) 1 归并排序(merge) 最差、平均和最好都是O(nlogn) O(n) 桶排序(bucket) O(n) O(k) 基数排序(Radix) O(dn) (d是常数) O(n) 二叉树排序(Binary tree) O(nlogn) O(n) 图书馆排序(Library) O(nlogn) (1+ε)n

不稳定的排序

不稳定的排序 时间复杂度 空间复杂度 选择排序(selection) 最差、平均都是O(n^2) 1 希尔排序(shell) O(nlogn) 1 堆排序(heap) 最差、平均和最好都是O(nlogn) 1 快速排序(quick) 平均是O(n logn),最坏情况下是O(n^2) O(log n)
阅读全文
0 0
原创粉丝点击