O(1)、O(n)、O(n²) 是什么意思?
大 O 常用来描述增长的上界,入门时用它比较主要工作量。
理解代码为什么这样写,以及计算机怎样一步一步解决问题。
共 13 篇文章
DFS、BFS、二分和时间复杂度。
大 O 常用来描述增长的上界,入门时用它比较主要工作量。
广度优先搜索按层扩展。
每次把候选数量缩小到大约一半,所需轮数增长很慢,这叫对数级增长。
暴力搜索直接检查所有候选,思路往往容易验证。
DFS 与 BFS 的主要区别是探索顺序。
深度优先搜索先深入一个分支,再回退探索其他分支。
递归自然表达 DFS 的深入与返回。
在无权图或每条边代价相同的情况下,BFS 可找到最少边数的路径。
优化先找真正耗时的地方,再减少重复工作或换合适算法。