Читаю доказательство теоремы:
Алгоритм быстрой сортировки сортирует последовательность элементы в ожидаемое время.
Доказательство таково:
Для простоты временного анализа предположим, что все элементы различны.
Это предположение максимизирует размеры и , и, следовательно, максимизировать среднее время, затрачиваемое на рекурсивные вызовы (QUICKSORT( ), БЫСТРАЯ СОРТИРОВКА( )).
Позволять — ожидаемое время, необходимое БЫСТРОЙ СОРТИРОВКЕ для сортировки последовательности элементы.
Четко, для некоторой константы .
Предположим, что элемент (стержень, который выбирается случайным образом) — это i-й наименьший элемент элементы в последовательностях.
Затем два рекурсивных вызова QUICKSORT (QUICKSORT( ), БЫСТРАЯ СОРТИРОВКА( )) имеют ожидаемое время и , соответственно.
С с равной вероятностью принимает любое значение между и , а остаток QUICKSORT( явно требует времени для некоторой константы , имеем отношение:
Алгебраические манипуляции урожаи
Покажем, что для , , где и .
Для основы , следует непосредственно из .
Для шага индукции напишите как
С вогнута вверх, легко показать, что
Замена в урожаи
С и , следует, что .
Таким образом следует .
Как мы получили отношение ?
Заранее спасибо.
Редактировать:
Можете ли вы объяснить мне эту фразу:
«Это предположение максимизирует размеры и , и, следовательно, максимизировать среднее время, затрачиваемое на рекурсивные вызовы (QUICKSORT( ), БЫСТРАЯ СОРТИРОВКА( )). "
?
Почему это максимизирует среднее время, затрачиваемое на рекурсивные вызовы?
Быстрая сортировка сводится к:
Выбор точки поворота
Разделить большой список на список «меньше сводного» и список «больше сводного»
Сортировать и отдельно, результат вызова и .
Объединить и и перейти к окончательному отсортированному списку .
Случайный выбор опорной точки — это постоянное время. Отсюда следует, что
Шаг 2 занимает время для некоторой постоянной . Вы просто делаете проход по списку, сравниваете его с опорным и добавляете его в любой или . Шаг 4 занимает не более время по менее очевидным причинам. Следовательно, шаги 2 и 4 занимают не более время для постоянного .
Шаг 3 остается. Выражение
это среднее значение общий , и это рекурсивный шаг, сортировка двух строго меньших списков. Следовательно, приведенная выше сумма представляет собой среднее время, необходимое для выполнения шага 3.
В заключение, весь процесс занимает менее время.
пользователь175343
Мелкосиний
пользователь175343
пользователь175343
Мелкосиний
Мелкосиний
пользователь175343
Мелкосиний
Мелкосиний
пользователь175343
Сергей Зайцев