人一停下来,就懒了,吼吼,活跃起来。
最近看编程之美,看到2.5求最大的k个数,我看书上介绍很多,网上讨论也很多,感觉有点乱,也许没找到他们探讨的核心吧。我自己看了看,好像没有我想的这个方法。
思路:用partion算法,求出第k大的数(O(n)),然后遍历一遍数组,求出最大的k个数(O(n)),整个算法的复杂度就是O(n).实现也很简单。个人觉得比较方便,简单,和编程之美上方法二,比较接近,只是不用递归调用,时间复杂度目测小一些。
人一停下来,就懒了,吼吼,活跃起来。
最近看编程之美,看到2.5求最大的k个数,我看书上介绍很多,网上讨论也很多,感觉有点乱,也许没找到他们探讨的核心吧。我自己看了看,好像没有我想的这个方法。
思路:用partion算法,求出第k大的数(O(n)),然后遍历一遍数组,求出最大的k个数(O(n)),整个算法的复杂度就是O(n).实现也很简单。个人觉得比较方便,简单,和编程之美上方法二,比较接近,只是不用递归调用,时间复杂度目测小一些。