Top-K问题(java面试题之算法类)

Top-K问题,不难,思路优化过程:
1.全局排序  O(n*lg(n))
2.局部排序,只排序topK个数,冒泡排序前k个,O(n*k)
3.堆排序,topK个数也不用排序了,O(n*lg(k))
4.分治法,每个分支“都要”递归,例如:快速排序,O(n*lg(n))
5.减治法,“只要”递归一个分支,例如:二分查找O(lg(n)),随机选择O(n)
6.TopK的另一个解法:随机选择+partition
7.比特位图法(bitmap)计数

 转载别人博客:(写的超详细,通俗易懂,Top-K问题必看)

https://blog.csdn.net/u013132035/article/details/82936032

另一个:http://www.cnblogs.com/Pjson/p/8926376.html

你可能感兴趣的:(Ĵava面试题之算法类)