我们先来看看几种排序的结构图:

排序是否稳定
比如:
排序前:2 5 7 6 4 2 9 3
排序后:2 2 3 4 5 6 7 9
排序前蓝2在红2前面,排序后蓝2依然在红2前面,则所用的排序方法是稳定的。
如果排序后,红2有可能在蓝2前面,那么所用的排序方法是不稳定的
下面说说前面几种排序的时间复杂度,不懂的话可以这么来想:
简直冒 快归队希尔
简:简单选择(直接选择)
直:直接插入
冒:冒泡
快:快速
归:归并
队:堆
再来看看这张表:

整理:
|
稳定性 |
排序方法 |
|
时间复杂度 |
|
空间复杂度 |
|
|
|
最好 |
平均 |
最坏 |
辅助空间 |
|
不 |
简 |
n2 |
n2 |
n2 |
1 |
|
稳 |
直 |
n |
n2 |
n2 |
1 |
|
稳 |
冒 |
n |
n2 |
n2 |
1 |
|
|
|
|
|
|
|
|
不 |
快 |
nlog2n |
nlog2n |
n2 |
nlog2n |
|
稳 |
归 |
nlog2n |
nlog2n |
nlog2n |
n |
|
不 |
堆 |
nlog2n |
nlog2n |
nlog2n |
1 |
|
不 |
希尔 |
n |
n1.3 |
n2 |
1 |
|
稳 |
基数 |
|
|
|
|
平均一样的放在一起,这样看起来也方便了很多。
5360





