Есть ли более быстрые алгоритмы, чем Дейкстра?

Имеют ли ориентированный связный граф только с положительными весами ребер, есть ли более быстрые алгоритмы для нахождения кратчайшего пути между двумя вершинами, чем Дейкстра, использующий кучу Фибоначчи?

Википедия говорит, что Дейкстра находится в O (| E | + | V | * log (| V |)) (используя кучу Фибоначчи).

Я не ищу оптимизацию, которая, например, вдвое меньше времени выполнения, а скорее алгоритмы, которые имеют разную временную сложность (например, переход от O (n * log n) к O (n)).

Кроме того, я хотел бы узнать ваше мнение о следующем подходе:

Определите GCD всех весов ребер.Преобразуйте график в граф с равномерным весом ребер.Используйте BFS, чтобы найти кратчайший путь между двумя заданными вершинами.

Пример для пункта 2:
Вообразите, что GCD равен 1. Тогда я бы преобразовал край
A ---> B (вес ребра 3)
в
A-> A '-> A' '-> B (3-кратный вес ребра 1)
Это преобразование стоит постоянного времени и должно быть выполнено один раз для каждого края. Поэтому я ожидаю, что этот алгоритм будет в O (| E |) (преобразование) + O (| E | + | V |) (BFS) = O (2 * | E | + | V |) = O (| E | + | V |)

Спасибо, что нашли время, чтобы прочитать мой вопрос, и я надеюсь не тратить ваше время ^^. Хорошего дня.

Ответы на вопрос(3)

Ваш ответ на вопрос