有一种众所周知的最坏情况选择算法,可以找到整数数组中的第k个最大元素。它使用中位数中位数方法找到足够好的枢轴,将输入数组划分为适当的位置,然后递归继续搜索第k个最大元素。
如果不允许我们触摸输入数组,那么要找到O (n )时间中的第个最大元素,需要多少额外空间呢?我们能否在O (1 )的额外空间中找到第k个最大元素,并且仍然保持运行时O (n )?例如,查找最大或最小元素需要O (n )时间和O (1 )空间。
凭直觉,我无法想象我们可以做得比空间更好,但是有证据吗?
可有人点到基准或拿出一个说法,为什么 “个元素将需要Ø (ñ )空间中找到Ø (ñ )的时间?
2
我不是专家,但是这些论文可能对您有所帮助:基于比较的时空下限用于选择和 时空权衡以及程序模型中的一阶问题
—
Vor 2012年