Як довести, що очікувана висота випадково побудованого двійкового дерева пошуку з вузлами дорівнює ? Є доказ у CLRS Введення в алгоритми (глава 12.4), але я цього не розумію.
Як довести, що очікувана висота випадково побудованого двійкового дерева пошуку з вузлами дорівнює ? Є доказ у CLRS Введення в алгоритми (глава 12.4), але я цього не розумію.
Відповіді:
Давайте спочатку подумаємо про це інтуїтивно. У найкращому випадку дерево є ідеально збалансованим; у гіршому випадку дерево зовсім не врівноважене:
Починаючи з кореневого вузла , це ліве дерево має вдвічі більше вузлів на кожній наступній глибині, так що дерево має вузол і висота (що в даному випадку 3). З невеликою математикою, , що означає, що вона має висота. Для повністю незбалансованого дерева висота дерева просто . Отже, у нас є межі.
Якби ми будували збалансоване дерево із упорядкованого списку , ми вибрали б середній елемент, який буде нашим кореневим вузлом. Якщо ми замість цього випадково будуємо дерево, будь-який з вузлів однаковою мірою буде вибраний, і висота нашого дерева становить: Ми знаємо, що у двійковому дереві пошуку ліве піддерево повинно містити лише ключі менше, ніж кореневий вузол. Таким чином, якщо ми вибираємо випадковим чином елемент, у лівого піддерева є елементи а в правому піддереві є елементів, тож більш компактно:
Як я впевнений, ви помітили, я трохи відхилився від того, як це підтверджує CLRS, тому що CLRS використовує дві відносно поширені методи доказування, які заважають непосвяченим. Перший полягає у використанні експонентів (або логарифмів) того, що ми хочемо знайти (в даному випадку висоти), що змушує математику працювати трохи більш чисто; друге - використовувати функції індикаторів (які я просто збираюся тут ігнорувати). CLRS визначає експоненціальну висоту як , тому аналогічний повтор .
Припускаючи незалежність (що кожний малюнок елемента (з наявних елементів) є коренем піддірева незалежно від усіх попередніх малюнків), ми все ще маємо відношення: для якого я зробив два кроки: (1) переміщення назовні, тому що це константа і однією з властивостей підсумовувань є те, що , і (2) переміщення 2 назовні, тому що воно також є постійним і одним із властивостей очікуваних значень є . Тепер ми будемо замінювати
У цей момент CLRS витягує індукційне підтвердження ім'я зі свого ... репертуару математичного досвіду, такого, що включає ідентифікацію вони залишають користувачеві для доказування. Важливим для їх вибору є те, що найбільший його термін - , і нагадаємо, що ми використовуємо експоненціальну висоту таку, що . Можливо, хтось прокоментує, чому саме цей двочлен був обраний. Загальна ідея, однак, пов'язана зверху нашою повторюваністю виразом для деякої постійної .
На закінчення одним вкладишем:
n^k
), то висновок такий самий, тому що k
в нотації big-O (спосіб 3 був упущений) випадає. Але якби ми замінили щось експоненціальне ( e^n
), воно все-таки буде правильною верхньою межею, просто не тісною . Ми знаємо, що очікувана висота є щонайменше логарифмічною, тому визначення того, що вона є не більше логарифмічної, робить її тісною.