请问是否可能?一般的方法在某种程度上就像在两个排序的数组上找到第n个值,忽略不重要的东西并尝试通过在递归中调整n的值来关注其余部分
2排序数组问题会产生一个计算时间O(log(| A |)+ log(| B |),而问题类似,我想问一下m排序数组是否存在时间算法O(log(| A1 |)+ log(| A2 |)+ ... + log(| Am |)),
或者我上面提到的一些类似的变化(由于变量m,我们可能需要一些其他排序算法来处理来自这些阵列的枢轴),
或者如果这种算法不存在,为什么?
我无法通过Google搜索找到此算法
答案 0 :(得分:0)
有一个简单的随机算法:
预期的递归深度为 O(log(N)),其中 N 是元素的总数,其证明类似于Quickselect,因此预期运行时间类似于 O(m * log 2 (N))。
论文"Generalized Selection and Ranking" by Frederickson and Johnson提出了针对不同场景的选择和排序算法,例如 O(m + c * log(k / c))算法来选择第k个元素来自 m 同等大小的排序序列, c = min {m,k} 。