algorithm - Big-O/Big-Oh 表示法

标签 algorithm big-o

我正在尝试计算以下算法的大 O,但我很困惑,需要一些帮助:

Algorithm 1. DFS(G,n)
Input: G- the graph
       n- the current node
1) Visit(n)
2) Mark(n)
3) For every edge nm (from n to m) in G do
4)     If m is not marked then
5)         Dfs(G,m)
6)     End If
7) End For
Output: Depends on the purpose of the search...

我什至不会开始说出我(错误地)计算出的解决方案是什么。谁能帮我解释一下?

谢谢。

编辑:显然我对 O(n+m) 的计算是正确的...有人可以验证这一点吗?

编辑 2:还是 O(|n|+|m|)

最佳答案

它的成本是 O(n + e ),其中 n 是节点数,e 是边数。

关于algorithm - Big-O/Big-Oh 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5912022/

相关文章:

arrays - 在线性时间内迭代嵌套数组

python - 如何计算Python函数的算法复杂度?

algorithm - t(n) 的运行时间 = t(n-2) + (n-2)²

c - 计算某个IP范围和时间范围内的访问次数的有效方法

algorithm - 非二进制字母表的哈夫曼树?

big-o - 什么是线性回归的 BigO?

algorithm - 对 O(n) 中的 m 组总 O(n) 元素进行排序

php - 如何修改传统的笛卡尔积以减少内存开销?

c++ - 打破 for 循环 C++

algorithm - 合并排序的最佳案例