Я работаю над приложением, демонстрирующим алгоритм Djikstra, и для его использования мне нужно восстановить свойство кучи, когда значение моих элементов уменьшено.
Проблема сложности заключается в том, что , когда алгоритм изменяет значение элемента, этот индекс элемента во внутренней структуре (куча в этом случае) используется для очереди приоритетов неизвестен. Таким образом, в настоящее время мне нужно выполнить поиск O (n), чтобы восстановить индекс, прежде чем я смогу выполнить на нем фактическое сокращение.
Кроме того, я не совсем уверен в фактическом коде, который необходим для операции. Я использую D-Heap здесь для моей очереди приоритетов. Pseudocode поможет, но я предпочел бы пример в Java о том, как это сделать.