当前位置: 首页 > wzjs >正文

自己有域名服务器怎样建设网站微信公众号 wordpress

自己有域名服务器怎样建设网站,微信公众号 wordpress,全网模板建站系统,企业微网站哪个版本好BFS理论 BFS,宽度优先搜索(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属…

BFS理论

BFS,宽度优先搜索(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。

——百度百科

说人话:BFS就是从一个点出发,找跟他相邻的所有点,再从相邻的点去找相邻的点(重复点不要再遍历),直到遍历完整张连通图。

很多人会拿DFS和BFS做比较学习,下面就是我做的图:

DFS类似于树的前序遍历,BFS类似于树的层次遍历。我的图也用树形结构展现。当然我们得知道,树是特殊的图,两个算法对图也成立。

代码实现

从理论到代码,自古是数据结构的难题。就像我学了半年的数据结构,除了会解数学题,实际上数据结构的应用,也就是代码实现,还差得远。

BFS的理论核心就是“层次遍历”,那么怎么去实现所谓的“层次”呢?这就需要队列的帮助。
如果你不知道队列是什么,队列的核心就是先进先出,比如排队打饭。详细了解可以看其他文章。

从A入手,A能遍历到BC,那么BC入队。接着找队首元素B,DE入队,B出队,此时队列包含CDE;再遍历队首元素C,FG入队,C出队,此时队列包含DEFG......最后DEFG分别出队,无入队成员。

不需记层的bfs

#include<queue>自动帮你实现队列,我们只需要记住三个函数:
q.push();//入队
q.pop();//出队
q.empty();//是个会返回值的函数,如果是空返回1,如果非空返回0

此外,就是pair类型。
make_pair(x,y)是2个数据组合成一组数据。
C++ pair的基本用法总结(整理)_c++ pair用法-CSDN博客
p.first表示第一个元素,p.second表示第二个元素。

search是四周发散的搜索,(x,y)是原点坐标,(px,py)是相邻点的坐标。
dx,dy数组就是题目需要的方向,可以随时调整。

int dx[5]={0,1,-1,0,0};
int dy[5]={0,0,0,1,-1};
bool s[105][105]={0};
queue<<int,int> > p;void bfs(int startx,int starty)
{q.push(make_pair(startx,starty));//startx,starty是起始位置 while(!height.empty()){//如果队列非空search(q.front());//队首元素四周发散搜索q.pop();//队头元素pop掉}return ;
}
void search(pair<int,int> pos)
{int x=pos.first,y=pos.second;for(int i=1;i<=4;i++){int px=x+dx[i],py=y+dy[i];if(px<1||px>n||py<1||py>m||s[px][py])//越界或者已经标记过那么跳过 continue;s[px][py]=1;//标记为已阅 p.push(make_pair(px,py));//新点入队 } return ;
}

需要记层的bfs

需要记录层数,那么会多一个“层数”的设置,我们设置为depth。
比如最上面这张图,A是第一层,BC是第二层,DEFG是第三层。
那么我的解法是,A后面放一个0,BC后面放一个0,DEFG后面放一个0。
碰见0,那么需要跳出循环,然后层数增1,再开启下一个点的遍历。
所以我采用了两层循环(但是实际上这是一个线性复杂度),第一层就是空则退出循环,第二层就是遇见0则退出循环。
当然,退出循环后,0也得出队,这是一个细节。

然后记录层数,我用s1数组表示已遍历,用s数组记录层级。
剩下的就是细节问题了。

void bfs(int x,int y){s[x][y]=0;//初始位置是0 s1[x][y]=1;//已经搜索过 xy.push(make_pair(x,y));while(!xy.empty()){xy.push(make_pair(0,0));while(xy.front().first!=0){search(xy.front());xy.pop();}xy.pop();//不然(0,0)这一对会一直留在原地没法弹出来 depth++;//增加层数 }return ;
}
void search(pair<int,int> pos)
{int x=pos.first,y=pos.second;for(int i=1;i<=4;i++){int px=x+dx[i],py=y+dy[i];if(px<1||px>n||py<1||py>m||s1[px][py])//越界或者已经标记过continue;//bfs思维和dfs不一样!他不是递归形式 s1[px][py]=1;s[px][py]=depth;xy.push(make_pair(px,py));//这里是入队而不是再一次bfs,这是广搜 } return ;
}

典例

以下是一个需要记录层数的例子:
数据结构实验——基于广度优先搜索的六度空间理论验证-CSDN博客
以下是bfs发散的例子:
(大一萌新都能听懂的)蓝桥杯 第九届(2018)1.2.3.7真题思路复盘-CSDN博客(跳到第七题)
此外就是洛谷上面的题单了,刷完就会对bfs的代码实现有一个质的飞跃。


(数据结构学的皮毛都不是)


文章转载自:

http://oVyl7KAG.Lpzqd.cn
http://FINwxgGa.Lpzqd.cn
http://IFKBeS1S.Lpzqd.cn
http://C5PVl36H.Lpzqd.cn
http://dCCvVbIw.Lpzqd.cn
http://ByUKfUFP.Lpzqd.cn
http://3V8G8Kwk.Lpzqd.cn
http://F47aT1xJ.Lpzqd.cn
http://zr9goK01.Lpzqd.cn
http://wKBn4oZC.Lpzqd.cn
http://Pp1wEt74.Lpzqd.cn
http://Bhgf9keL.Lpzqd.cn
http://ylwlf8AD.Lpzqd.cn
http://6kK96Yvo.Lpzqd.cn
http://vzv28RDC.Lpzqd.cn
http://ZK1aeUnZ.Lpzqd.cn
http://MLDaEozo.Lpzqd.cn
http://uCslRd3b.Lpzqd.cn
http://LQqzlfYu.Lpzqd.cn
http://d4FbJqwt.Lpzqd.cn
http://iwRyMz4P.Lpzqd.cn
http://BGW7JHge.Lpzqd.cn
http://ZlzF2fun.Lpzqd.cn
http://DNren0Ja.Lpzqd.cn
http://z6o8qdJf.Lpzqd.cn
http://vw5D8orj.Lpzqd.cn
http://1yWdEMEk.Lpzqd.cn
http://shef95AK.Lpzqd.cn
http://W1bh8lsi.Lpzqd.cn
http://U3Wn90F5.Lpzqd.cn
http://www.dtcms.com/wzjs/713925.html

相关文章:

  • 四大网站wordpress首页排版更换
  • 深圳微信网站运营网络公司网站首页图片
  • cms 类网站做cg的网站
  • 做个网站成功案例网上备案
  • 广州知名网站大学生网站建设课程总结
  • 个人接单做网站挣钱不襄阳专业做网站
  • 南宁市住房和城乡建设部网站公司网络用哪个比较好
  • 网站建设 费用预算邯郸超速云_网站建设
  • 成都好的网站设计公司云服务器是干什么的
  • 长沙河西网站建设天津网站制作策划
  • 忻州市中小企业局网站wap网站e4a做app
  • 广州培训做网站营销网站建设资料
  • 湛江公司做网站百度指数人群画像哪里查询
  • 自己优化网站全球优秀网页设计机构
  • c 怎么和网站做交互WordPress 调整语言
  • 长沙高校网站制作公司微信小程序网站建设公司
  • 企业网站建设前网站目的需明确wordpress加载进度条
  • 企业网站模板大全hyper cache wordpress
  • 网站开发背景图模板wordpress 4.1.1 中文
  • 网站建设的文字用什么字体较好企业代运营公司
  • 广州网站系统开发在线crm厂商
  • 自己的网站做优化怎么设置缓存怎么做百度搜到的网站免费的
  • 电子商务网站建设规划书实例内蒙古微网站建设
  • 项城市建设方案公示在哪个网站wordpress会员卡系统
  • 简单企业网站源码网页设计实训报告范文免费
  • 中国建设银行网站对公账户首页做安卓icon图标下载网站
  • 住房和城乡建设部网站唐山抽奖网站插件
  • 网站禁用右键如何创建自媒体手机网站
  • 怎么做贝店式的网站网站 后台 模板
  • 国内优秀html网站电子商务网站的建设视频