总结:
种稳定
排序方法
时间复杂度O(n^2)
排序过程
只要
辅助空间
所
空间复杂度O(1)
②.希尔排序
缩小增量排序
对直接插入排序
种改进;分组插入方法
总结:
种
稳定
排序方法
时间复杂度O(n^1.25)
空间复杂度O(1)
2.交换排序
①.冒泡排序
好
情况下

正序
所
只要比较
次
行了
复杂度O(n)
坏
情况下

逆序
要比较n^2次才行
复杂度O(n^2)
总结:稳定
排序方法
时间复杂度O(n^2)
空间复杂度O(1)
当待排序列有序时
效
比较好
②.快速排序
通过
趟排序
待排
记录分割成独立
两部分
其
部分记录
关键字均比另
部分
关键字小

再分别对
两
部分记录继续进行排序
达
整
序列有效
总结:
所有同数量级O(nlogn)
排序方法
快速排序
性能
好
种方法
待排序列无序时
好
算法
时间复杂度
O(nlogn)
坏
时间复杂度O(n^2)
空间复杂度O(nlogn)
3.选择排序
①.直接选择排序 和序列
初始状态无关
总结:时间复杂度O(n^2)
无论
好还
坏
②.堆排序
直接选择排序
改进
总结:时间复杂度O(nlogn)
无论
好还
坏情况下都
O(nlogn)
4.归并排序
总结:时间复杂度O(nlogn)
空间复杂度O(n)
5.基数排序
按组成关键字
各
数位
值进行排序
分配排序
种
需要进行排码值间
比较
能够进行排序
总结:时间复杂度O(d(n+rd))
总总结:
n比较小
时候
适合 插入排序和选择排序
基本有序
时候
适合 直接插入排序和冒泡排序
n
大
关键字
位数较少时
适合 链式基数排序
n
大
时候
适合 快速排序 堆排序 归并排序
无序
时候
适合 快速排序
稳定
排序:基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序
稳定: 快速排序、希尔排序、堆排序、直接选择排序
复杂度
O(nlogn):快速排序 堆排序 归并排序 辅助空间(大 次大):归并排序 快速排序 好坏情况
样:简单选择(n^2)
堆排序(nlogn)
归并排序(nlogn)
好
O(n)
:插入排序 冒泡排序