【算法百题之八】利用快排寻找第K小的值
【算法百题之八】利用快排寻找第K小的值
大家好,我是Lampard~~
很高兴又能和大家见面了,接下来准备系列更新的是算法题,一日一练,早日升仙!
今天的问题是:
存在一个未知数据量的向量,想找出里面第K小的值。如果全部排序一遍再用下标【k-1】去找的话效率太低。
我们只需要让前K-1个数据比K值小就可以了,那么下面就是我的思路:
算法的关键是用一个全局变量Length来存储前面有多少个比K小的元素,
当全局变量Length加L-left(L是这一次排序的标兵,L-left是比L小的元素的个数)== K时得证
下面是代码图:
测试图:
结果图: