文章目录
排序法归类
稳定排序法:
插入排序法、冒泡排序法、二路归并排序
不稳定排序法:
快速排序法、直接选择排序、堆排序
时间复杂度排序,效率由低到高:
冒泡排序法O(n²)
插入排序法O(n²)
直接选择排序O(n²)
快速排序法O(nlog2n)(最坏情况O(n²) :几乎排好序的情况)
堆排序O(nlog2n)
二路归并排序O(nlog2n)
空间复杂度,由复杂到简单:
二路归并排序(辅助空间开销比较大)
快速排序法(百度有说O(1),我怎么感觉是O(log2n))
堆排序(O(1),百度的,不科学)
直接选择排序(O(1))
冒泡排序法(O(1))
插入排序法(O(1))
插入排序法
特性
时间复杂度O(n²)
空间复杂度O(1)
直接插入排序法是稳定的
算法截图
算法示例
交换排序
冒泡排序法
特性
时间复杂度O(n²)
冒泡排序法是稳定的
算法截图
算法示例
快速排序法
特性
快速排序法是不稳定的
平均时间复杂度O(nlog2n)
最坏情况O(n²) :几乎排好序的情况
算法截图与算法示例
选择排序
直接选择排序
特性
时间复杂度O(n²)
直接选择排序是不稳定的
算法说明
直接选择排序算法的基本思想:在第i次选择操作中,通过n-i次键值间比较,从n-i+1个记录中选出键值最小的记录,并和第i个记录交换。
堆排序
特性
平均时间复杂度O(nlog2n)
空间复杂度?
堆排序是不稳定的
算法说明
归并排序法
有序序列的合并
时间复杂度O(n-h+1)
二路归并排序
特性
时间复杂度O(nlog2n)
二路归并排序法是稳定的
辅助空间开销比较大