- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
流动儿童主动搜索总结 搜索总结
流动儿童主动搜索总结 搜索总结
导读:就爱阅读网友为您分享以下“搜索总结”资讯,希望对您有所帮助,感谢您对92的支持!
搜索总结
一、深度优先搜索:
1、算法介绍:
深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。
2、代码框架:
procedure try(depth:longint,...);
var
i:longint;
...;
begin
if depthgt;=目标深度
then
begin
输出;
// exit; {若仅有一种解}
end;
else
for i:=1 to n{此深度可决策范围} do
begin
记录决策;
try(depth+1);
恢复原始状态;
end;
end;
二、 宽度优先搜索:
1、算法介绍:
宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位址,彻底地搜索整张图,直到找到结果为止。
2、代码框架:
procedure bfs;
var
i,j:integer;
f,e:integer;
begin
f:=1;
e:=1;
repeat
更新层数;
初始化此层找到的路径条数;
for i:=s to e do{从起始指针向尾指针进行搜索}
for j:=1 to n{可决策的方案总数} do if 满足条件 then begin
记录方案;
更新此层找到的路径条数;
end;
更新首、尾指针;
until 到达最深层;
end;
三、深度搜索与宽度搜索区别:
深度搜索与广度搜索的控制结构和产生系统很相似,唯一的区别在于对扩展节点选取上。
深度搜索由于其保留了所有的前继节点,所以在产生后继节点时可以去掉一部分重复的节点,从而提高了搜索效率。这两种算法每次都扩展一个节点的所有子节点,而不同的是,深度搜索下一次扩展的是本次扩展出来的子节点中的一个。
广度搜索扩展的则是本次扩展的节点的兄弟节点。在具体实现上为了提高效率,所以采用了不同的数据结构。
四、典型例题:
1、骑士聚会:{典型的宽搜}
在 N*N 的棋盘上放m个马,问各自跳多少步才能在某处聚在一起,希望聚会时间越早越好,且总步数最少。
const
w:array[1..8,1..2] of integer=
((1,2),(-1,2),(1,-2),(-1,-2),(2,1),(2,-1),(-2,1),(-2,-1));
var
n,m:integer;
qsi,qsj:array[1..10] of integer;
step:array[1..10,1..10,1..10] of integer;
all,all0,day,day0:integer;
ai,aj,di,dj:integer;
i,j,k:integer;
procedure go(nqs,x,y:integer);
var
arrive:array[1..10,1..10] of boolean; f,e:integer;
reachi,reachj:array[1..100] of integer; numr:integer;
i,j:integer;
over:boolean;
begin
for i:=1 to n do
for j:=1 to n do
begin
arrive[i,j]:=false;
step[nqs,i,j]:=-1;
end;
arrive[x,y]:=true;
step[nqs,x,y]:=0;
reachi[1]:=x;
reachj[1]:=y;
f:=1;
e:=1;
repeat
over:=true;
numr:=0;
for i:=f to e do
for j:=1 to 8 do
if (reachi[i]+w[j,1]gt;0) and (reachi[i]+w[j,1]lt;=n)
and (reachj[i]+w[j,2]gt;0)
then if and not (reachj[i]+w[j,2]lt;=
您可能关注的文档
最近下载
- 园林绿化修剪设备.pdf VIP
- 建筑工程重点部位施工方案.docx VIP
- 口袋妖怪梦的光点全图鉴.docx
- 博林特LCM3 BLT-QS卓悦2 QS2113型电气原理图MPDK136(默纳客3000+).pdf
- 设备及压力管道防腐蚀管理制度(参考版).doc VIP
- 昆仑10号航空液压油-天空用.pptx VIP
- DBJ46-047-2018_海南省_装配式混凝土结构工程施工质量验收标准.pdf VIP
- 鲁教版(五四学制)七年级上册英语期末复习各单元知识点提纲(实用,必备!).docx VIP
- 医疗考试医学类医学基础必背考点.pdf VIP
- 《无机化学与化学分析》课程思政案例.docx VIP
文档评论(0)