binary-tree - 二叉树上 BFS 和 DFS 的时间复杂度:为什么是 O(n)?
问题描述
图上 BFS 或 DFS 的时间复杂度为 O(V+E),因为我们遍历了图的所有节点和边。(我明白了)但是对于二叉树,BFS 和 DFS 的时间复杂度是 O(V)... 为什么会这样?
我假设是因为以下原因:O(V + E)= O(V + V-1)= O(2V)= O(V)。这是正确的推理吗?如果没有,将不胜感激直观的解释。谢谢
解决方案
所有的树都有n - 1
边,n
即节点的数量。时间复杂度在技术上仍然是 O(V + E),但这等于 O(n + (n-1)) = O(n)。
推荐阅读
- javascript - 使用 JS 在迭代期间按一个字段对 JSON 数组进行排序
- python - 当用户进入网站/链接时,有没有办法调用函数?
- java - 在 Android Studio 中从 Github 克隆项目
- intellij-idea - 有没有人知道如何创建“运行/远程”配置 IntelIj 来连接 Wildfly 服务器,请告诉我
- react-native - 任何可用于 react-native 的应用内文档(pdf、docx、xslx)查看器库模块?
- c# - 创建索引时,在elasticsearch中获取“Query_shard_exception”
- python - 查找在指定小时内完成任务所花费的时间
- java - 使用 StringBuilder 连接查询字符串
- node.js - 节点中 PayU Money Web 集成中的 Webhooks 响应为空
- android - android 中的 MotionLayout 不适用于多个 OnClick 转换