BFPRT算法,寻找第K小(大)或前K小(大)的最快方法
BFPRT算法,是Blum、Floyd、Pratt、Rivest、Tarjan提出,最坏时间复杂度为O(n)。它是针对TOP-K问题的极好方法。
算法思想:
将原始序列中所有元素按5个元素一组进行划分,最后一组可能少于5个元素,对每一组元素进行插入排序选出中间的元素即为中位数,这个过程每组可以同时进行;
递归寻找各组中位数组合起来的新子序列的中位数和其下标;
利用快速排序的思想,将这个中位...
原创
2019-10-12 11:20:02 ·
339 阅读 ·
0 评论