图片说明

稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。
不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。

算法原理:https://www.cnblogs.com/onepixel/articles/7674659.html
python版代码实现:https://www.cnblogs.com/Mufasa/p/10527387.html

冒泡排序:越小的元素会经由交换慢慢“浮”到数列的顶端

选择排序:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾

插入排序:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入

快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序

希尔排序:插入排序的一种

归并排序:先递归分解数组,再合并数组。比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位