Top-K问题之部分划分法

来源:互联网 发布:恶搞改图软件 编辑:程序博客网 时间:2024/04/29 15:13


def Partition(arr):sa=[]sb=[]index=random.randint(0,len(arr)-1)p=arr[index]for i in arr:sa.append(i) if i>p else sb.append(i)return (sa,sb)def TopK(arr,k):if k<=0:return []if len(arr)<=k:return arr(sa,sb)=Partition(arr)return TopK(sa,k)+TopK(sb,k-len(sa))


0 0
原创粉丝点击