Quicksort – це алгоритм, який відрізняється високою ефективністю. Розуміння його виконання передбачає аналіз очікуваної кількості порівняння і ковпачок під час виконання. Ця стаття досліджує математичні принципи за цими очікуваннями, фокусуючись на ймовірному аналізі Quicksort.

Вибачте кількість Порівняння

Очікується кількість порівняння в Quicksort залежить від вибору процесу pivot і розділення. Припустимо, що всі перестановки однаково ймовірні, середній випадок може бути проаналізовано за допомогою рективних рівнянь. Для масиву розмірів n], очікувані порівняння, відхилені як C(n)], задовольняє рецидив:

C(n) = n - 1 + фрак{1}{n} сума {k=0}STRING-1} [C(k) + C(n - 1 - k)]

Цей рецидив спрощує добре відомий результат: C(n) ≈ 2n ln n] для великих n]. Прибуття передбачає підведення всіх можливих позицій pivot і застосування властивостей гармонічних чисел.

Виявлена кількість обмінів

Обмінюється в Quicksort відбувається під час процесу розділення. Очікувана кількість ковпачок пов'язана з кількістю порівняння і розподілом вибірів pivot. Під однорідною випадковістю очікувані ковпачки, позначені як S(n)], можна приблизно, аналізуючи етапи розділення.

Кожен крок розділу передбачає замітки елементів, щоб забезпечити правильне розміщення pivot. Очікувані застібки за перегородку пропорційні розмірам підармів. Обмеженню всіх рекурсивних дзвінків вносить апроксимацію: S(n) ≈ n ln n].

Резюме роз’яснення

  • Компанія: Орієнтовно 2n ln n для великих n].
  • Поповнення: Орієнтовно n ln n для великих n].
  • Як метрики виростають логарифмічно з масивом, що відображає ефективність Quicksort.