插入排序:类似打牌,每次接到一张牌就按照顺序放入
快速排序:从两边往中间排序,有两个基准lower_index higher_index  select_X ,每次排序sel,ect_X固定,大于selectX的往右边放,小于selectX往左边放,第一次排完,select_x 左右边都比它小,右边都比它大。 第二次分别对select_x两边进行排序
选择排序:每次从待排序的队列,选一个最小的
归并排序:将两个以上的有序表,排成一个表。没次从所有有序表中选出最小的放入到输出队列中
冒泡排序:依次比较相邻的两个数,小放前,大放后
堆排序:将一组数据,按照“树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字”进行排列构成树,第一次选择出当前堆中的最大元素跟最后一位相互调换,然后大根堆的性质遭到破坏,调用重建堆性质函数重新建立大根堆

希尔排序:给定的先取一个正整数d1<n,把所有序号相隔d1的数组元素放一组,组内进行直接插入排序;然后取d2<d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止 ,注意最后一个增量一定是(1-5  2-6 3-7 4-8 两个元素比一次 排出一个队列 ,对次队列递归  )



堆排序和归并排序的时间复杂度比较低,但是归并要额外花费较大的空间内存,在有序的情况下快排表现很差,所有我们这里有快排的随机化版本,归并和堆排序在有序的情况下也表现很好。