TopK问题,腾讯面试题:有100W个战斗力,取前100名的算法。

腾讯面试题:有100W个战斗力,取前100名的算法。

经典topK问题,结论是:随机选择算法 + 快排思想,通过随机选择算法,找到第k大的数,再进行一次快排中的partition,就能得到TopK的结果。

有篇大神的帖子,写的非常好,借鉴下  http://www.sohu.com/a/255145095_178889

结合大神的,觉得还有优化空间,就是找到第K大的数的过程中,把满足条件的数组拷贝出来,这样就没必要再快排了。

猜你喜欢

转载自www.cnblogs.com/workharder/p/11980411.html