前方大坑预警!
先讲讲什么是搜索吧。
有一天你去一个果园摘梨子,果农告诉你,有一棵树上有一个金子做的梨子,找到就是你的,你该怎么找?
地图如下:
S 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 G
废话,挨个找呗~ 这就叫做搜索。
在一个区间内找到符合条件的值的过程,就是搜索。(?)
最简单的就是穷举,挨个找。因为都可以走,所以从(1,1)到(n,n)一路走过去,能找到就行。
但是果农告诉你,这个果园有的位置是肥料坑~你不能过去(当然,你非要去坑里游两圈也不拦着你),那么这个果园的地图就成了这个样子。
S 0 1 1 0
0 1 0 0 0
0 0 1 1 0
0 1 0 0 0
0 0 0 0 G
这个时候,果园又来了好几个摘梨子的,果农就说:“金梨子只有一个,你们谁最先找到就归谁!”
那么如何去寻找到一条最短的路程呢?
这时候就该用一些策略了,于是,DFS(深搜)登场了。
首先,为什么叫深度优先搜索?
深度,在这种环境下,可以看做离起始位置的步数。
更学术点的说法,可以看做“单位距离下,离起始状态