Точна кількість порівнянь для обчислення медіани


25

Том III з Кнута Мистецтво програмування (глава 5, вірш 3.2) включає в себе наступну таблицю лістингу точне мінімальну кількість порівнянь необхідно вибрати t - й найменший елемент з несортованих набору розміру n , для всіх 1tn10 . Ця таблиця разом з добре відомими виразами закритої форми V1(n)=n1 і , являє собоюбільшучастину сучасної технікистаном на 1976 рік.V2(n)=n2+n/2

Таблиця з Knuth III: 5.3.2

Чи були обчислені більш точні значення за останні 36 років? Мене особливо цікавлять точні значення M ( n ) = V n / 2 ( n ) , мінімальна кількість порівнянь, необхідних для обчислення медіани.Vt(n)M(n)=Vn/2(n)


Як зазначає @ MarkusBläser, таблиця Кнута, здається, вже містить новіші результати Білла Гашара, Уейна Келлі та Білла П'ю ( Знаходження i-го найбільшого з n для малого i, п . SIGACT News 27 (2): 88-96, 1996 .)


2
На мою думку, найвідоміший документ на цю тему - це Пратт і Яо (1976), яким приписують, що серед перших знайшли якусь (змагальну) техніку для доведення нижчих меж цієї проблеми. Якби я знайшов останні статті з цього приводу, я би дотримувався цитат, зроблених до цього документу . Найновіший документ - це Дор і Цвік, але є також опитування Патерсона 1996 року (хоча я не дивився, чи стосується він точних результатів чи ні).
Jérémie

1
Нитчіпкінг: В останньому реченні у питанні ви, мабуть, мали на увазі стелю замість підлоги.
Цуйосі Іто

6
Джеффе, цікаво, чому тебе цікавить точна відповідь.
Чандра Чекурі

5
Кеннет Оксанен написав ефективний код для обчислення . На жаль, існує лише абстрактний доступний sciencedirect.com/science/article/pii/S1571065306001582 Два роки тому один з моїх студентів надіслав йому електронний лист і отримав від нього код. Я не пам’ятаю, чи можна було отримати якісь нові значення. Vi(n)
Маркус Блазер

5
@ChandraChekuri: Я розмовляю з варіантами алгоритму лінійного вибору лінійного часу Blum-Floyd-Pratt-Rivest-Tarjan як потенційного алгоритму домашнього завдання з алгоритмами. Якщо ми використовуємо алгоритм мінімального порівняння для пошуку медіани у кожному блоці, то який розмір блоку дає нам найкращу константу у великому-О? 9 краще, ніж 7, краще 5; що з 11?
Jeffε

Відповіді:



3

Цікаво, чи може ця інформація вам стати в нагоді. На жаль, він не надає ніякої додаткової інформації на питання цієї публікації, але, скоріше, відповідає на ваш коментар про те, для чого це було (аналізуючи варіанти QuickSelect).

v(n,t)vt(n)

vt(n)=n+min(t,nt)+l.o.t..

Цей результат нечасто використовується, і, зокрема, є основою для алгоритмів у "Адаптивній вибірці для швидкого вибору" Мартінеса, Панаріо та Віоли . Вихідною точкою статті є QuickSelect медіани-три, а потім запитати: чи доречно систематично вибирати медіану, коли елемент, який ми шукаємо, має відносний ранг, значно нижчий n / 2 або набагато вище n / 2 ?

knmm/2αmα=k/nm

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.