В соответствии с моим пониманием, я вычислил временную сложность алгоритма Дейкстры как запись большого О с использованием приведенного ниже списка смежности. Это не получилось так, как предполагалось, и это заставило меня понять это шаг за шагом.
- Каждая вершина может быть связана с (V-1) вершинами, поэтому число смежных ребер каждой вершины V - 1. Пусть E представляет собой ребра V-1, связанные с каждой вершиной.
- Поиск и обновление каждого смежного веса вершин в минимальной куче - это O (log (V)) + O (1) или
O(log(V))
. - Следовательно, из шага 1 и шага 2 выше временная сложность для обновления всех смежных вершин вершины равна E * (logV). или
E*logV
. - Следовательно, временная сложность для всех V-вершин равна V * (E * logV) i.e
O(VElogV)
.
Но временная сложность алгоритма Дейкстры равна O (ElogV). Почему?