Випадковий вибір


14

Алгоритм рандомізованого відбору такий:

Введення: Масив з n (чітких, для простоти) чисел та числа k [ n ]Ank[n]

Вихід: "ранговий елемент" A (тобто той, який знаходиться в положенні k, якщо A було відсортовано)kAkA

Спосіб:

  • Якщо є один елемент в , повернути йогоA
  • Виберіть елемент ("стрижень") рівномірно навманняp
  • Обчисліть множини і R = { a A : a > p }L={aA:a<p}R={aA:a>p}
  • Якщо , повертає ранг K елемент L .|L|kkL
  • В іншому випадку поверніть ранг елемент Rk|L|R

Мені було задано наступне питання:

Нехай , так що ви шукаєте медіани, і нехай & alpha ; ( 1 / +2 , 1 ) буде постійним. Яка ймовірність того, що при першому рекурсивному виклику множина, що містить медіану, має розмір не більше α n ?k=n/2α(1/2,1)αn

Мені відповіли, що відповідь - , з обґрунтуванням "Вибраний шарнір повинен лежати між 1 - α і α разів більше вихідного масиву"2α11αα

Чому? Як , будь-який елемент, обраний як шарнір, або більший, або менший, ніж половина початкових елементів. Медіана завжди лежить у більшому підматриці, оскільки елементів у розділеному підмасиві завжди менше, ніж зведене.α(0.5,1)

Якщо стрижень лежить у першій половині початкового масиву (менше половини з них), медіана неодмінно опиниться у другій більшій половині, бо як тільки буде знайдена медіана, вона повинна знаходитися в середньому положенні масиву, і все, перш ніж стрижень менше, як зазначено вище.

Якщо шарнір лежить у другій половині початкового масиву (більше половини елементів), медіана, безумовно, спочатку більша половина, з тієї ж причини, все до того, як стрижень вважається меншим.

Приклад:

3 4 5 8 7 9 2 1 6 10

Медіана 5.

Припустимо, що вибраний стрижень дорівнює 2. Отже, після першої ітерації він стає:

1 2 .... більша частина ....

Тільки обмінюються 1і 2обмінюються після першої ітерації. Число 5 (медіана) все ще знаходиться в першій більшій половині (відповідно до точки 2). Справа в тому, що медіана завжди лежить на більшій половині, як вона може мати шанс залишитися в меншому підмарітті?


Ми не лежали на вашій лекції, тому, будь ласка, поясніть метод.
Рафаель

Не знаючи, про який алгоритм точних точок ви говорите, ваше питання не читабельне. Ви, здається, використовуєте у різних можливостях; Я спробував редагувати, але не впевнений, що вловив сенс. Перегляньте, щоб питання було зрозумілим. Голосування про закриття до цього часу. .5
Рафаель

Це алгоритм відбору за допомогою рандомізованого методу на відміну від детермінованого методу.
Amumu

Існує багато способів вибрати елемент довільно.
Рафаель

2
@Amumu: я редагував це для опису алгоритму. На такому форумі не всі дізнаються про що ви говорите, і існує дуже різний рандомізований підхід до вибору, який простіше проаналізувати.
Луї

Відповіді:


12

nαn(1α)n(1α)nα>1/222α12+2α=2α1


Дякую за відповідь. У мене ще є кілька незрозумілих речей. Отже, що α> 1/2 має щось спільне з роз'єднаними множинами? Я думав, що коли у нас завжди є непересічні набори за допомогою цього методу, незалежно від розміру підмножини.
Amumu

1α<1/2(1α)n<n(1α)n

Лише одне останнє: що стосується поганого / хорошого стрижня? Наскільки я знаю, хороший шарнір зазвичай знаходиться в діапазоні 25-75 (що розбиває початкові масиви на 25% -75%), а поганий - поза цим діапазоном, і гірший, як правило, на початку або в кінці оригіналу масив. Але це?
Amumu

2
Тут я кажу, що стрижень "поганий", якщо він робить більшу частину більшою, ніж ви хочете, що є αнрозмір. Те, що ви називаєте поганим, відповідаєα=3/4. Я підозрюю, що питання полягає в тому, що ваш інструктор хотів, щоб ви побачили цеО() порядок очікуваного часу роботи не змінюється шляхом зміни α.
Луї
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.