简单算法:冒泡、简单选择、直接插入;
改进算法:希尔、堆、归并、快速;
从平均情况看,显然最后三种改进算法要胜过希尔排序,远远胜于前三种简单排序算法。
从最坏情况看,堆排序与归并排序又强过快速排序及其他算法。
冒泡:每次相邻之间之间对比、选出最小的或者最大的。
简单排序:直接每次从序列中选出最大或者最小的、指导序列有序。
直接插入:将序列中第n个元素插入到有序的n-1个序列中、使得得到的新的n个元素的序列有序。
希尔排序:直接插入排序的改进、改的是插入距离。
堆排序: 简单选择排序的改进、堆是一颗完全二叉树,根节点的数值比其子节点大或者小、因而堆得根节点的数值是最大或者最小的。
归并排序:典型的分治算法的经典例子、先分后合。
快速排序:冒泡排序的改进、有个关键值,通过其使得关键值左边的数比其小,右边的数比其大。也是分治算法的思想。
总的来说、优化的快速排序算法是目前最好的排序算法、至于何为优化,就是在快速排序的基础上改进相关步骤。
快速排序的简单示意流程
可以参考此篇博文:https://blog.csdn.net/yushiyi6453/article/details/76407640