这是算法导论第九章 randomized-select 的经典问题, 解决方法有很多种
全部排序
时间复杂度 O(NlogN)
空间复杂度 O(1)最小优先队列存储前 K 大的数
时间复杂度 O(NlogK)
空间复杂度 O(K)选择算法
时间复杂度 O(N) 最好 / O(N^2) 最坏
空间复杂度 O(1)随机选择算法
时间复杂度 O(N)
空间复杂度 O(1)
C 代码如下
1 | int paratition(int *A, int p, int r) { |
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章