【算法百题之八】利用快排寻找第K小的值

   【算法百题之八】利用快排寻找第K小的值

 

       大家好,我是Lampard~~

       很高兴又能和大家见面了,接下来准备系列更新的是算法题,一日一练,早日升仙!

 

       今天的问题是:

       存在一个未知数据量的向量,想找出里面第K小的值。如果全部排序一遍再用下标【k-1】去找的话效率太低。

       我们只需要让前K-1个数据比K值小就可以了,那么下面就是我的思路:

        【算法百题之八】利用快排寻找第K小的值

      算法的关键是用一个全局变量Length来存储前面有多少个比K小的元素,

       当全局变量Length加L-left(L是这一次排序的标兵,L-left是比L小的元素的个数)== K时得证

      

       下面是代码图:

      【算法百题之八】利用快排寻找第K小的值

 

    测试图:

【算法百题之八】利用快排寻找第K小的值

    结果图:

【算法百题之八】利用快排寻找第K小的值

 

OK,今天的博客就到这里,谢谢大家!!!