【算法概论】搜索算法

本文详细介绍了搜索算法,包括Breadth-First Search (BFS), Depth-First Search (DFS), Hill Climbing, Best-first search strategy, Backtracking和Branch-and-bound Searching Algorithm,以及A*算法。这些算法在解决复杂问题时构建解答树,并通过不同的策略遍历和优化搜索过程。爬山算法和最佳优先搜索算法是深度优先搜索的优化,而回溯算法用于检查所有可能解并进行剪枝。A*算法通过结合启发式信息进行更有效的搜索。" 109152328,5257531,Win10安装VMware Tools及解决拖拽文件问题,"['虚拟机', 'VMware', 'Ubuntu', 'Windows 10', '文件传输']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搜索算法

       搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。(百度百科)

       搜索算法需要在指数量级的繁杂的可选对象中搜索某个具有特定性质的解,而且,求解这些问题似乎没有什么捷径可行。(《算法概论》)

       现阶段,搜索算法实际上是根据初始条件和扩展规则构造一棵“解答树”并寻找符合目标状态的节点的过程。为什么会选择树这一结构呢?The procedure of solving many problems may be represented by trees, therefore the solving of these problems becomes a tree searching problem.

       搜索算法最重要的两点?

       Problem space / State space (the set of all possible solutions )

       Tree Searching Strategies

       在构造“解答树”中则有四个问题?

       How to organize the candidate solution space?

       How to traverse the candidate solution space?

       Techniques of pruning the search?

       Analysis of searching algorithm?

       来看主要的几个树的搜索算法~

目录

Breadth - First Search

Depth - First Search

Hill Climbing

Best-first search strategy 

Backtracking

Branch-and-bound Searching Algorithm

A* algorithm


Breadth - First Search

       1)构造一个顶点元素类型的队列,初始状态时其内的元素只有根节点;

       2)将队列中的队首元素与目标元素比较,如果是,停止寻找;否则,继续执行程序;

       3)将队首元素的后继节点依次加入队列中,移除队列中的队首元素;

       4)如果队列为空,查找失败;否则,转向第二步。

Depth - First Search

       1)构造一个顶点元素类型的栈,初始状态时其内的元素只有根节点;

       2)将栈中的栈顶元素与目标元素比较,如果是,停止寻找;否则,继续执行程序;

       3)移除栈顶元素,并将栈顶元素的后继节点依次加入栈中,;

&nb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值