算法 | 分治-输出前 m 大的数
输出前 m 大的数假设数组长度为 n,要输出前m大的数,m < = n,想法有两种:
先排序后输出,算法复杂度为 O(n log n)
先在 O(n)时间内将前m大的数放到数组的右边,然后对其进行快排O(mlogm),时间复杂度为 O(n+mlogm)。
在m较小,n较大的情况下,第二种做法显然比较可取。
那么如何在 O(n)的时间内将前m大的数放在数组的右边呢。
我们引入 ar...
Continue reading...