目录
冒泡排序
快速排序
选择排序
堆排序
插入排序
希尔排序
合并排序
稳定排序的概念
对于大小为n的排序数据量:
https://blog.csdn.net/Doutd_y/article/details/81911362
计算复杂度:平均速度为,最坏情况下的速度为
与冒泡排序类似,也是基于交换排序的思想。https://blog.csdn.net/Doutd_y/article/details/81988665
计算复杂度:平均速度为,最坏情况下的速度为
https://blog.csdn.net/Doutd_y/article/details/81911362
计算复杂度:平均速度为,最坏情况下的速度为
https://blog.csdn.net/Doutd_y/article/details/82012766
堆排序算法基于选择排序的思想,利用堆结构和二叉树的一些性质来完成数据的排序。
计算复杂度:平均速度为,最坏情况下的速度为
https://blog.csdn.net/Doutd_y/article/details/81911362
计算复杂度:平均速度为,最坏情况下的速度为
基于插入排序的思想:插入排序的算法复杂度为,但如果序列为正序可提高到
,而且直接插入排序算法比较简单,希尔排序利用这两点得到了一种改进后的插入排序。
https://blog.csdn.net/Doutd_y/article/details/81950359
计算复杂度:平均速度为,最坏情况下的速度为
https://blog.csdn.net/Doutd_y/article/details/82015102
计算复杂度:平均速度为,最坏情况下的速度为
通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果,
原来在
位置前,排序后
还是要在
位置前。
冒泡排序、插入排序、合并排序都是稳定排序
选择排序、希尔排序、快速排序和堆排序都不是稳定排序
数据量n较小时,可采用插入排序或选择排序;数据量较大时,可采用快速排序、堆排序、合并排序。
如果待排序数据是随机分布的,快速排序算法的平均时间最短。