十大排序算法分类
十种常见排序算法可以分为两大类:
比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。
非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。
插入排序,堆排序,选择排序,归并排序和快速排序,冒泡排序都是比较排序,它们通过对数组中的元素进行比较来实现排序
其他排序算法则是利用非比较的其他方法来获得有关输入数组的排序信息

相关概念
稳定排序与不稳定排序
稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。
不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。
内部排序和外部排序
根据排序过程中,待排序的数据是否全部被放在内存中,分为两大类:
内部排序:指的是待排序的数据存放在计算机内存中进行的排序过程;
外部排序:指的是排序中要对外存储器进行访问的排序过程。
内部排序是排序的基础,在内部排序中,根据排序过程中所依据的原则可以将它们分为5类:插入排序、交换排序、选择排序、归并排序;
根据排序过程的时间复杂度来分,可以分为简单排序、先进排序。冒泡排序、简单选择排序、直接插入排序就是简单排序算法。
时间复杂度与空间复杂度
时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。
空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。
算法优劣的评价标准
评价排序算法优劣的标准主要是两条:一是算法的运算量,这主要是通过记录的比较次数和移动次数来反应;另一个是执行算法所需要的附加存储单元的的多少。
十大排序算法分析图


再次综合感谢以下大佬的指点
https://blog.csdn.net/hansionz/article/details/80822494
https://www.cnblogs.com/onepixel/p/7674659.html
网友评论