流动儿童主动搜索总结 搜索总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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;=

文档评论(0)

raojun00007 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档