Ваш анализ не учитывает стоимость очереди с приоритетами. Тем не менее, вы не совсем ошибаетесь.
Требуется O (| E |) операций с клавишей уменьшения, так как почти каждое посещаемое вами ребро может сделать это, и O (| V |) операции удаления-минимума, так как вы должны сделать это, чтобы вытащить вершины из очереди.
Если вы используете кучу Фибоначчи в качестве приоритетной очереди, то ключ уменьшения занимает постоянное время, а delete-min - O (log | V | ) время, так что вы получите O (| E | + | V | log | V |). С точки зрения | V | только, | E | заменяется на O (| V | 2 ), поскольку он может go такой высокий, и это доминирует над | V | журнал | V | термин, дающий общую сложность O (| V | 2 ).
Таким образом, вы правы, если хотите дать оценку в терминах | V | только, но дает оценку в терминах | V | и | E | Отдельно предпочтительнее, потому что он передает больше информации . Он говорит вам, что он быстрее, чем O (| V | 2 ) для разреженных графов, что может быть важно.
Обратите внимание, что O (V + E log V) вы искали предназначен для реализации, которая использует другой тип очереди приоритетов, например двоичную кучу, а не кучу Фибоначчи. Это часто встречается на практике.