0

我正在做一个任务,它需要一些图形,向图形添加一个额外的顶点,将新顶点作为源应用 Bellman Ford,然后使用将 Dijkstra 的所有对应用于图形。

正在使用的算法具有以下运行时间/空间要求:

添加额外的顶点
-- 运行时间:V
-- 空格:V
Bellman Ford 单源最短路径算法
-- 运行时间:EV
-- 空格:V
Dijkstra 的所有对最短路径算法
-- 运行时间:EV log V
-- 空格:V

如果我在计算整个过程的大 O,我很难理解。每个程序都是单独运行的,并且输出从一个程序传送到另一个程序。我的想法是总算法的 Big-O 运行时间为:

O( V + EV + EV log V )这将简化为O( EV log V )

空间需求将以类似的方式计算。我在想这个正确吗?谢谢!

4

1 回答 1

0

确切地说,“经验法则”是,在一系列代码块中,整体复杂度由具有最大复杂度的块(渐近)支配

从数学上讲,当 V 趋于非常大的数字时,它小于 EV,它小于 EVlogV。因此,对于大 V,您的算法的复杂性可以很好地近似为 EVlogV

于 2014-02-25T17:32:42.843 回答