Поиск элемента в куче - PullRequest
       28

Поиск элемента в куче

28 голосов
/ 03 марта 2010

Я вспомнил, что куча может использоваться для поиска, находится ли элемент в нем или нет с O (logN) сложностью по времени. Но вдруг я не могу получить детали. Я могу найти только getmin delete add и т. Д.

Кто-нибудь может дать подсказку?

Ответы [ 2 ]

46 голосов
/ 03 марта 2010

Вам необходимо выполнить поиск по каждому элементу в куче, чтобы определить, находится ли элемент внутри.

Однако возможна одна оптимизация (здесь мы предполагаем максимальную кучу). Если вы достигли узла с более низким значением, чем элемент, который вы ищете, вам не нужно искать дальше от этого узла. Однако даже при такой оптимизации поиск по-прежнему составляет O (N) (в среднем необходимо проверить N / 2 узлов).

0 голосов
/ 03 марта 2010

Я думаю, что вы ищете BST (дерево двоичного поиска).

...