Я коротко викладу ескіз суперечливого аргументу.
Розглянемо свій алгоритм вибору, що грає проти опонента, якого ми будемо називати противником. Метою супротивника є надання вхідного сигналу для вашого алгоритму, який максимізує кількість операцій порівняння, виконаних вашим алгоритмом. Дійсно, ваш алгоритм можна розглядати як дерево порівняння, в якому шлях відповідає частковому порядку. Коли алгоритм запитує противника про пару елементів, супротивник повертає або або . Відповіді противника ніколи не можуть суперечити попереднім результатам.Х( х , у)х < уу< х
Припустимо, що -й найбільший елемент : враховуючи частковий порядок, пов'язаний з будь-яким листом дерева порівняння, то повинен бути порівнянним з будь-яким іншим елементом, щоб алгоритм був правильним, щоб алгоритм повинно було зробити хоча б одне порівняння , результат якого або або . Назвіть таке порівняння вирішальним для елемента . Очевидно, що противник хоче максимально збільшити кількість неважливих порівнянь, зроблених вашим алгоритмом.кх∗х∗( у, z) ∀ у≠ x∗у< z≤ x∗х∗≤ z< уyу
Нехай - сукупність найбільших елементів; ваш алгоритм повинен правильно ідентифікувати всі елементи в а також найбільший елемент у , тобто . Зауважте, що кожен елемент у втратив щонайменше одне вирішальне порівняння. Тепер у противника є стратегія, яка змушує кожен з елементів у виграти принаймні порівняння, жодне з яка має вирішальне значення для . Додавання решти ключових порівнянь дляLk−1LX∖Lx∗X∖Lk−1L⌈lgnk−1⌉X∖Ln−kX∖Lви отримуєте нижню межу. Детальніше, будь ласка, прочитайте наступне, чудово, зазначає Джефф Еріксон .
crucial comparison for $y$
: порівняння де або або і - ціль елемент. Що робити, якщо ми не знаємо співвідношення і коли проводиться ці порівняння? У нас тут оракул ? Або ми всезнаємо повну інформацію (навіть майбутню інформацію в листі)? y < z ≤ x ∗ x ∗ ≤ z < y x ∗ z x ∗