STL中的sort函数
来源:互联网 发布:菜鸟网络会员干什么的 编辑:程序博客网 时间:2024/04/28 06:05
B站二面时,面试官问了一个问题,没打出来感觉挺亏的。
问题是:STL中的sort函数用的什么排序算法?这个问题我之前看面经的时候,看了一眼,但是当时没有仔细研究过。大致知道里面用了快速排序。
今天这里写一个文章总结下:
STL的sort()算法,数据量大时采用Quick Sort,分段递归排序。一旦分段后的数据量小于某个阈值,为避免Quick Sort的递归调用带来过大的额外开销,就改用Insertion Sort(插入排序)。如果递归层次过深,还会改用Heap Sort。
STL
中的sort
并非只是普通的快速排序,除了对普通的快速排序进行优化,它还结合了插入排序和堆排序。根据不同的数量级别以及不同情况,能自动选用合适的排序方法。当数据量较大时采用快速排序,分段递归。一旦分段后的数据量小于某个阀值,为避免递归调用带来过大的额外负荷,便会改用插入排序。而如果递归层次过深,有出现最坏情况的倾向,还会改用堆排序。
STL
采用的做法称为median-of-three
,即取整个序列的首、尾、中央三个地方的元素,以其中值作为枢轴。阅读全文
0 0
- STL中的sort()函数
- STL中的sort函数
- STL中的sort函数
- [STL源码剖析] list中的sort()函数
- STL sort算法中的比较函数
- STL sort算法中的比较函数
- STL sort函数简介
- STL sort函数简介
- STL sort函数简介
- STL sort函数简介
- STL的sort函数
- STL sort()函数详解
- STL sort函数
- STL中的sort排序
- STL中的Sort 算法
- STL中的sort
- ACM STL中的sort
- STL中的Sort算法
- Faster-RCNN_TF代码解读8:networks.py
- webpack踩坑之路——图片的路径与打包
- 贝叶斯相关(整理)
- hdu 6208 The Dominator of Strings
- 深入java 使用正则表达式
- STL中的sort函数
- Java中的关键字_动力节点Java学院整理
- SpringMVC(二) Ajax 的使用
- 如何加密/混乱C源代码
- oracle 添加一列数据从1.。。100
- 基于docker的webrtc开发环境
- springboot静态处理
- 动态规划求解0-1背包问题
- hessian集成spring注解实现