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