1.问题
设L是n个元素的集合,从中选取第k小的元素,1<=k<=n
2.解析
3.设计
对于集合A[1…n]中的元素,用其中某元素V进行划分:
if ,问题归结为在A_1中找第k小元素
else if ,V就是第K小元素
else if ,问题归结为在A_3中寻找第 小元素。
对于第一、三中情况,只需要进行递归即可。
4.分析
W(n)= nlogn - n + 1
5.源码
https://github.com/kukukiki11/-/blob/main/%E6%89%BE%E7%AC%ACk%E5%B0%8F%E5%85%83%E7%B4%A0.cpp