寻找第K小的数(分治)

1.问题

给你一个无序序列,找到序列中第k大的数字

2.解析

类似于快速排序,我这里将第一个作为参考系,可以轻松的得知第一个数在整个序列中是第几大,得到cnt,在这期间随便将序列分为两部分。

如果cnt<k 那么使得查找的范围缩小一半,那么就去后半段去查找,否则的话去前半段去查找。

3.设计

 

 

4.分析

时间复杂度:O(n)

5.源码

GitHub
posted @ 2021-04-19 16:01  passawayy  阅读(296)  评论(0)    收藏  举报