liyanbo的个人博客分享 http://blog.sciencenet.cn/u/liyanbo

博文

SGI STL 排序实现

已有 1720 次阅读 2016-3-28 21:57 |个人分类:算法|系统分类:科研笔记

最外层是median-of-3(起点,终点,中点的中位数)的快排;但限制了快排的递归深度,max_k{2^k}<n,其中n是要排序的数的个数,k是最大递归深度。当达到递归深度时,改用堆排序。定义了一个全局常数__stl_threshold=16,加了另一个限制,当元数个数不超过16时,快排结束。


当上面的过程结束后,就剩下多个元素个数小于16的子序列,每个都有相当程度的排序。


然后,做如下操作:

对于小于16的就用插入排序处理,大于16的,分割成一个16的片段用插入排序,一个剩余子序列用边界条件省略的插入排序。



https://blog.sciencenet.cn/blog-1515646-965621.html

上一篇:C++基本概念
下一篇:统计学习基本概率
收藏 IP: 159.226.43.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-24 17:02

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部