算法求第K小元素思路

来源:互联网 发布:bt种子编辑器 for mac 编辑:程序博客网 时间:2024/05/13 04:00

面试经常会遇到这样算法题目:说一下求第K个小的元素的思路

      分三步

1.   n个数中随机找一个A[i]=x

2.  划分三个数组s1(元素<x)   s2(元素=x)   s3(元素>x)

3.  若|s1|>k    调用select(k,s1)

      若|s1+s2|>=k    第k小的元素就是x

     若|s1+s2|<k   调用select(k-|s1|-|s2|,s3)



0 0
原创粉丝点击