Answers:
我将简要概述对手论点的草图。
考虑您的选择算法与我们称为对手的对手对抗,对手的目的是为您的算法提供输入以使您的算法完成的比较操作数量最大化。确实,您的算法可以看作是比较树,其中的路径对应于部分顺序。当算法向对手询问元素对时,对手返回或。对手的答案永远不会与先前的结果相矛盾。
假设第个最大元素为:考虑到与比较树的任何叶子相关的偏序,则必须与其他所有元素都具有可比性,以便算法正确,因此该算法必须具有由至少一个比较 ,其结果是要么或。称这样的比较对于元素y至关重要。显然,对手想要最大化您算法进行的非关键比较的次数。
令为最大元素的集合;您的算法需要正确识别所有元素以及的最大元素,即。观察到,在每个元素已经失去至少一个关键比较。现在,对手采取的策略是迫使L中的元素至少赢得each lg n比较,其中没有一个是至关重要的。将XnL的其余关键比较相加,即可得到下界。Jeff Erikson指出,有关详细信息,请阅读以下优秀文章。
crucial comparison for $y$
:在比较其中任ÿ < Ž ≤ X *或X * ≤ Ž < ÿ和X *是目标元件。如果进行这些比较时我们不知道z和x ∗之间的关系该怎么办?我们这里有个神谕吗?还是我们不了解完整的信息(甚至包括未来的信息)?