1. 问题
利用特定分治策略选出第k小的元素。
2. 解析
3. 分析
void select(vectors,int n,int k){
把s划分成最多5个一组
把每组的中位数放到集合m中
找出中位数的中位数m* //用划分成四部分ABCD
把AD中的每个元素与中位数比较大小,小的构成s1,大的构成s2
s1=s1并C,s2=s2并B
if k==s1.size
输出m*
return
else if k<=s1.size
select(s1,s1.size,k)
else
select(s2,s2.size,k-s1.size-1)
end if
}
4. 设计
5. 源码
[github源码地址]:https://github.com/Hayleyzhou/Algorithm-Analy