Изменения

Перейти к: навигация, поиск

Список с пропусками

32 байта убрано, 23:59, 20 марта 2019
Вставка элемента
===Вставка элемента===
Для вставки элемента в список с пропусками, нам необходимо выполнить следующие шаги:
# Найти с помощью алгоритма поиска позицию, куда нам надо вставить этот элемент
# Вставить наш элемент в нижний уровень списка с пропусками
# «Подбросить монетку» и в зависимости от результата протолкнуть элемент на уровень выше
# Повторять предыдущий шаг до тех пор, пока у нас «подброс монетки» дает положительный результат
Таким образом# Найти с помощью алгоритма поиска позицию, если использовать честную монету, то математическое ожидание количества элементов на втором уровне равняется <tex>\dfrac{n}{2}</tex>, на третьем уровне <tex>\dfrac{n}{4}</tex> и т.дгде мог бы находиться элемент. На уровне <tex>\log{n}</tex> у нас окажется один # Вставить наш элементв текущий уровень списка с пропусками# Подбросить монету. Ну и соответственно вероятности попасть элементу # Если выпал «Орёл» то перейти на второй уровень — это выше и вернуться к шагу <tex>\dfrac{1}{2}</tex>, на третий <tex>\dfrac{1}{4}</tex> и т.д. Вероятность попасть на уровень <tex>\log{n}</tex> равна <tex>\dfrac{1}{n}</tex>.# Иначе закончить операцию вставки
Используя монетку с распределением отличным от Таким образом, если использовать честную монету, то математическое ожидание количества элементов на втором уровне равняется <tex>\dfrac{n}{2}</tex>, на третьем уровне <tex>-</tex> <tex>\dfrac{n}{4}</tex> и т.д. На уровне <tex>\log{n}</tex> у нас окажется один элемент. Ну и соответственно вероятности попасть элементу на второй уровень — это <tex>\dfrac{1}{2}</tex>, на третий <tex>\dfrac{1}{4}</tex> и т.д. Вероятность попасть на уровень <tex>\log{n}</tex> равна <tex>\dfrac{1}{n}</tex>. Используя монетку с распределением отличным от <tex>\left\{\dfrac{1}{2}, \ \dfrac{1}{2}\right\}</tex>, можно влиять на количество элементов на верхних уровнях. Так, например, при использовании монеты с распределением <tex>\{p,q\}</tex>}, математическое ожидание количества элементов на уровне <tex>lk</tex> равно <tex dpi=150>n q^lk</tex>, каждый уровень на каждом следующем уровне будет составлять в среднем в <tex>q</tex> от предыдущего; раз больше элементов. Таким образом, время поиска будет равно <tex>O\left(\dfrac{k}{q} + nq^k\right)</tex>. Соответственно при честной монетке и <tex>\log(n)</tex> уровней получаем оценку, полученную ранее.
Для крайних распределений:
* <tex>\{0, 1\}</tex> {{---}} <tex>O(k+n)</tex>
390
правок

Навигация