Как доказать, что ожидаемая глубина k-го наименьшего элемента в полной двоичной куче (min-heap) равна O (logk)? - PullRequest
2 голосов
/ 11 октября 2019

this is part of the answer where I can not understand

Моя проблема заключается в том, что вероятность второго, трех ... k-го наименьшего элемента в правом подзаголовке равна 1 / 2-1 / N,в то время как в левой подпапке 1/2 + 1 / N.

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Предыдущий ответ правильный, но я подумал, что картинки могут помочь.

Пробное пространство (или пространство вероятностей) - это набор всех возможных результатов. И индивидуальные вероятности всех этих исключительных результатов в сумме составят 1. Например, если в конкретном пространстве выборки есть только два взаимоисключающих результата A и B, а вероятность A равна 1/4, то вероятность Bдолжно быть 3/4.

В вашем случае есть два результата: либо k-1-й наименьший узел находится в левом подпапке корня, либо k-1-й наименьший узел находится в правом подпапке.

min heap

Прежде чем подумать о том, куда мы поместим наименьший узел kth , примерное пространство выглядит следующим образом. Два результата представлены квадратом, и оба квадрата равны по размеру (1/2 + 1/2 = 1)

fifty-fifty

Но тогда предложениесказал что-то вроде «давайте предположим, что k-й наименьший узел находится в одной из подголовок, и давайте выберем левый, потому что нам это нравится»Всего можно выбрать из N-1 узлов (N-1, потому что корень не является частью этого выбора). Ниже показано, где мы разместили k-й наименьший узел. Общее количество узлов, из которых можно выбрать k-1-е наименьшее, изменилось (и этот факт изменит формы в нашем образце пространства).

remove a node

Итак, теперь вероятность того, что k-1-й наименьший узел окажется в левом подголовнике, была уменьшена на (1 / N-1).

И это показано ниже путем удаления треугольника из Черного квадрата. (Это могла быть любая форма, но я выбрал треугольник). Этот треугольник должен куда-то идти, потому что все должно складываться до 1. Количество узлов не имеет значения. Мы уменьшили вероятность одного результата на размер этого треугольника, и, следовательно, увеличили вероятность другого результата на ту же величину. Теперь пространство выглядит следующим образом.

enter image description here

Дерево вероятностей - полезный способ думать об этом.

0 голосов
/ 11 октября 2019

Сначала нам нужно 1/(N-1), потому что мы рассматриваем левое и правое поддерево корня. Следовательно, поскольку размер дерева равен N, у нас есть N-1 узлы, которые необходимо учитывать. Также, как уже упоминалось, «без ограничения общности мы можем предположить, что k-й наименьший элемент находится в левом подголовке», поэтому потенциальные узлы в левом подголовке на единицу меньше, чем узлы в правом подголовке. Следовательно, вероятность в левом подпапке равна 1/2 - 1/(N-1), и в разумных пределах вероятность в правом подпапке равна 1 - the probability in the left subheap = 1 - (1/2 - 1/(N-1)) = 1/2 + 1/(N-1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...