SORT代码
算法
不是固定某一种排序,而是根据状态相应的采用不同的方法。
数据量大时采用快排 quick sort,分段递归排序,一旦分段后二点数据量小于某个阈值,为避免快排的递归调用带来的过大的额外开销,就改用insertion sort(插入排序)。如果递归层次过深,还会改用heap sort (堆排序)。
枢轴的选择
最坏的情况下发生在分割时产生了一个空的区间,这样就完全没有达到分割的效果。STL采用的做法是median-of-three,即取整个序列的首,尾,中央三个地方的元素,以三个数的中间值作为枢轴。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6c0380e22e2b862408eeb519a0faaa6e.png)