【发布时间】:2019-05-20 00:28:06
【问题描述】:
我可以建立一个算法 FindStats(A,k)
它接收一个大小为n的输入数组A和一个整数k,使得2^k
到目前为止我尝试了什么:
我知道有一种算法 QuickSelect(A,k)(确定性算法),它在线性时间内返回第 k 阶统计量,但在我的情况下,简单的解决方案是遍历所有 1,2, 4,8...,2^k 订单统计并返回结果 O(nlogn)。
我可以改进它吗?有没有可能实现?
【问题讨论】:
-
快速选择具有平均线性性能。由于枢轴选择不佳,最坏的情况仍然是二次的。
-
@AndyG 通常是正确的,但很高兴知道更好的最坏情况时间复杂度快速选择是可能的(具有相当复杂的)中位数。
标签: algorithm data-structures deterministic