算法基础
文章平均质量分 81
Hephesto
这个作者很懒,什么都没留下…
展开
-
【算法基础】回溯(Backtracking)
回溯是递归的一种形式,同时也是递归的副产品,也就是说只要有递归就会有回溯。在遇到必须从多种选项中选择一项的时候,你选择了一项后又会出现多种选项供选择,直到选择到了“正确的选项”函数才结束。因此,回溯法解决的问题都可以抽象为树形结构(不一定是二叉树)。回溯虽然是一种非常典型的递归算法,但是任何递归算法都可以重写为堆栈算法。事实上,这就是递归算法被翻译成机器或汇编语言的方式。原创 2024-02-03 00:00:48 · 1134 阅读 · 1 评论 -
【算法基础】深度优先搜索(DFS)
深度优先搜索(Depth-First Search,DFS),是一种通过暴力枚举每一条路径的方法,来遍历树或图的所有路径,其中,每个节点只能访问一次。DFS通常是由递归来实现的,可以用来处理遍历整张图、求问题有多少个解、多少个节点、多少条路经等。可理解为是一种“一条路走到黑”的算法,最糟糕的时间复杂度可达到O(n!原创 2024-02-01 19:33:19 · 526 阅读 · 0 评论 -
【算法基础】广度优先搜索(BFS)
广度优先搜索 (又叫层次遍历或宽度优先搜索,通常是以二叉树或图作为研究对象,先从上往下对该二叉树的每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完当前层才进入下一层,直到没有结点可以访问为止。原创 2024-01-31 19:31:16 · 576 阅读 · 0 评论