2013-12-23 5 views
1

Я читал Dijkstras Algorithm в гл. 24 и запутался со значением разреженного графа. Они говорят: «Если граф достаточно разрежен, в частности, E= o(V^2/lg V) -we может улучшить алгоритм, реализуя очередь с минимальным приоритетом с помощью двоичного minheap».Число краев в разреженном графике?

Мои вопросы

  1. откуда они получены выражения E= o(V^2/lg V) для разреженного графа?

  2. Невозможно использовать очередь с минимальным приоритетом в случае плотного графа. Каким будет его влияние на временную сложность Дейкстры?

Ссылка-CLRS Страница-662 3-е изд.

Пожалуйста прочитано:

+2

Похоже, что они получают выражение 'E = o (V^2/lg V)' * прямо там, в указанной вами ссылке *. Вам нужны объяснения по поводу этого вывода, или я неправильно понял, что там написано? – anatolyg

+0

Кроме того, в отношении вашего вопроса (2); ссылка, которую вы предоставляете, указывает на ее влияние как «O ((V + E) lg (V))», не так ли? – anatolyg

+0

Предлагаю вам изменить название и заменить № по номеру. Нет, это еще одно слово, и в первый раз, когда я прочитал вопрос, я смутился. – fotanus

ответ

2
  1. Substitute, что выражение для E в общее время, O((V + E)lg V), и вы увидите, что если E=o(V^2/lg V) общее будет o(V^2), что является улучшение за O(V^2) время работы без использования Minheap.

  2. Снова замените. Предположим, что полный график, E = V^2. Затем время работы становится O((V + V^2)lg V) = O(V^2 lg V), что хуже O(V^2).

Смежные вопросы