Нижняя граница для нахождения k-го наименьшего элемента с использованием аргументов противника

10

Во многих текстах нижняя граница для нахождения го наименьшего элемента выводится с использованием аргументов, использующих медианы. Как я могу найти один, используя аргумент противника?k

Википедия говорит, что алгоритм турнира работает в , и n - k + n j = n + 2 - klgO(n+klogn) будетданокак нижняя граница.nk+j=n+2knlgj

user5507
источник

Ответы:

8

Я собираюсь кратко обрисовать набросок аргумента противника.

Рассмотрим алгоритм выбора, который вы играете против оппонента, которого мы назовем противником. Цель противника - предоставить вход X для вашего алгоритма, который максимизирует количество операций сравнения, выполняемых вашим алгоритмом. Действительно, ваш алгоритм можно рассматривать как дерево сравнения, в котором путь соответствует частичному порядку. Когда алгоритм запрашивает противника о паре (x,y) элементов, противник возвращает либо x<y либо y<x . Ответы противника никогда не могут противоречить предыдущим результатам.

Предположим, что k величине элемент равен x : учитывая частичный порядок, связанный с любым листом дерева сравнения, тогда x должен быть сопоставим с любым другим элементом, чтобы алгоритм был корректным, поэтому алгоритм должен иметь сделал хотя бы одно сравнение (y,z) yx , результатом которого является либо y<zx либо xz<y . Назовите такое сравнение решающим для элемента y, Очевидно, что противник хочет максимизировать количество несущественных сравнений, выполненных вашим алгоритмом.

Пусть L - множество из k1 самых больших элементов; Ваш алгоритм должен правильно идентифицировать все элементы в L а также самый большой элемент в XL , то есть x . Заметим, что каждый элемент в XL потерял хотя бы одно решающее сравнение. Теперь у противника есть стратегия, которая заставляет каждый из k1 элементов в L выиграть, по крайней мере, lgnk1сравнения, ни один из которых имеет решающее значение дляXL. Добавляя оставшиесяnkкритических сравнений дляXLвы получаете нижнюю границу. Для деталей, пожалуйста, прочитайте следующее, отлично,отмечаетДжефф Эриксон.

Массимо Кафаро
источник
@JeffE Я запутался в определении crucial comparison for $y$: сравнения где y < z x или x z < y и x - целевой элемент. Что если мы не знаем отношения между z и x ∗, когда проводятся эти сравнения? У нас здесь есть оракул ? Или мы всезнающие с полной информацией (даже будущей информацией в листе)? y:zy<zxxz<yxzx
hengxin