搜索
文章平均质量分 74
有关深搜,宽搜,记忆化搜索,启发式搜索等算法
c++机械师
计科菜鸡一名
展开
-
搜索(3):双向BFS
对于一些问题我们使用普通BFS求解时,队列中最多会存在两层的搜索节点,搜索空间的上界取决于目标节点所在的搜索层次的深度所对应的宽度,一旦层数比较多,那可能会出现搜索爆炸的问题,双向BFS可以让我们不使用这么宽的搜索空间,这可以保证搜索到目标结果。原创 2024-01-25 21:53:55 · 616 阅读 · 0 评论 -
搜索(1):深度优先搜索
今天主要来了解深度优先搜索(DFS)。原创 2024-01-22 19:59:54 · 2148 阅读 · 1 评论 -
搜索(2):宽度优先搜索
从起点开始,先将起点入队并标记,之后开始宽搜,每次将队首元素出队,搜索它的周围元素,如果没有走过则进行标记,这是判重,因为之后再到这个位置的步数肯定比之前要多,所以我们标记之后就不会再搜索这个位置,然后将存步数的数组对该位置加1,之后将其压入队中,这是向外辐射扩散的。对于最少步数的问题,我们建的图存的是到达该位置的最少步数,而队列的结构体元素存的是图中每个点的坐标,并进行判重。宽搜的过程,通过队列来维护序列的状态空间,入队就排队等待,出队就将儿子们入队。宽搜的计算:出队后,入队前,结束后。原创 2024-01-23 19:23:06 · 980 阅读 · 4 评论