В большинстве расчетов расчета времени работы мы предполагали
что все входы одинаково вероятны. Это не правда, потому что почти
например, сортированный ввод происходит гораздо чаще, чем
статистически ожидаемый, и это вызывает проблемы, особенно для
деревья быстрой сортировки и двоичного поиска.
При использовании рандомизированного алгоритма конкретный вход больше не
важный. Случайные числа важны, и мы можем получить
ожидаемое время выполнения, где мы теперь усредняем по всем возможным случайным
числа вместо всех возможных входов. Использование быстрой сортировки с
Случайный поворот дает алгоритм O (n log n) с ожидаемым временем. Это означает
что для любого ввода, включая уже отсортированный ввод, время выполнения
ожидается, что будет O (n log n), основываясь на статистике случайных
номера. Ожидаемое время выполнения несколько сильнее, чем
средний случай, но, конечно, слабее, чем соответствующий
предел наихудшего случая.
Сначала мы увидим новую схему поддержки бинарного поиска
дерева операций в O (log n) ожидаемое время. Еще раз, это означает, что
нет плохих входных данных, просто плохие случайные числа. Из теоретического
С точки зрения, это не очень интересно, так как сбалансированный поиск
деревья достигают этой границы в худшем случае. Тем не менее, использование
рандомизация приводит к относительно простым алгоритмам поиска,
вставка, и особенно удаление.