'all|everything|universe' => $all
должно быть
'all|everything|universe' => \$all
Вам необходимо просмотреть каждый элемент в куче, чтобы определить, находится ли элемент внутри.
Однако возможна одна оптимизация (здесь мы предполагаем максимальную кучу). Если вы достигли узла с меньшим значением, чем искомый элемент, вам не нужно искать дальше от этого узла. Однако даже с этой оптимизацией поиск по-прежнему O (N) (необходимо проверять в среднем N / 2 узлов).
Я думаю, что вы ищете BST (дерево двоичного поиска).
Добавление индекса к значениям "кучи" может решить эту проблему. В Python это может быть сделано с помощью словаря. обновите индекс узла в словаре каждый раз, когда Вы выполняете операцию в минимальной "куче".
необходимо только реализовать это, если длина минимальной "кучи" огромна, и Вы хотите искать в минимальной "куче" много раз. Это потребует, чтобы некоторые по голове кодировали для отслеживания индекса, но это увеличит скорость программы по крайней мере на 50 - 60%.