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

网站建设行业怎么样泉州网页网站制作

网站建设行业怎么样,泉州网页网站制作,杭州专门做网站,建设网站都需要注意什么一、最短路 概念:从某个点 A 到另一个点B的最短距离(或路径)。从点 A 到 B 可能有多条路线,多种距离,求其中最短的距离和相应路径。 最短路径分类: 单源最短路:图中的一个点到其余各点的最短路径…

一、最短路

        概念:从某个点 A 到另一个点B的最短距离(或路径)。从点 A 到 B 可能有多条路线,多种距离,求其中最短的距离和相应路径。

        最短路径分类:

        单源最短路:图中的一个点到其余各点的最短路径

        多源最短路:图中任意两点的最短路径

         框架图解:

二、朴素Dijkstra算法

        算法思想(仅限于非负权重值):从起始点开始,使用贪心的策略,通过加点的方法,每次遍历到起始点距离最近且未被访问过的邻接节点 t ,将 t 加入到集合 S 中,直到访问过所有节点。

     通过 N 次循环确定 n 个点到起点的最短路距离 

        时间复杂度为 O(n^{2})

        1.在没有确定最短路中的所有点(集合 S 以外)找出距离起点最近的点 t   

        2.对 t 进行标记,加入到集合中

        3.用 t 更新其他点的最短路距离

       集合 S :已经确定最短路的点(被访问过的点)                                                                               定义数组 dis:从起始点到某点 ( 3 号节点 ) 的最短距离( dis[3] )                                                 定义二维数组add: add[u][v] 表示从 节点 u 到 节点 v 的距离(区分单向与双向,双向则add[v][u]=add[u][v])                                                                                                                       初始化: dis[1]=0 \, \, \, \, \, \, \, \, \, dis[x]=+\bowtie \, \, \, \, \, \, \, \, \, 2\leq x\leq n (以节点 1 为起始点)                                        若 节点 u 与 节点 v 之间没有路径,初始化为 add[u][v]=+\Join

      核心代码:

for(int i=1;i<=n;i++)
{int t=-1;for(int j=1;j<=n;j++)   // 在没有确定最短路中的所有点找出距离最短的那个点 t if(!s[j] && (t==-1||dis[t]>dis[j]))t=j;                  s[t]=true; // 代表 t 这个点已经确定最短路了for(int j=1;j<=n;j++) // 用 t 更新其他点的最短距离 dis[j] = min(dis[j],dis[t]+add[t][j]);
}

样例解释:对于下图,求出节点 A 的单源最短路 

 

n12345
dis07395

三、堆优化dijkstra算法

        在朴素dijkstra算法中,遍历点是通过for循环对所有节点判断一遍得出的,”对所有节点判断“这一操作消耗了更多的时间。

        算法思想:

        可以通过堆(优先队列)进行优化,堆(优先队列)存储节点起始点到该点最短距离,堆(优先队列)按照距离自动排序取距离最小且未被访问过的点,同通过用邻接链表(或邻接表)储存图的方法,再进行松弛操作,并将进行松弛操作的节点插入堆中。

         ①.初始化距离:数组dis 都初始化为 0x3f3f3f3f(无穷大),并将 1 号节点插入堆中 (dis[1]=0)

         ②取出堆顶的点(当前起始点到该点距离最小),判断是否被访问过,不断弹出取堆顶,直至找到未被访问的节点,再根据邻接链表(或邻接表)拓展。

         ③进行松弛操作,把松弛的点和距离插入到堆中。

        堆优化代码:

void dij(int s)
{priority_queue< pair<int,int> > q;  // 利用优先队列q.push(make_pair(0,s));memset(dis,127,sizeof(dis));dis[s]=0;while(q.size()){int u=q.top().second;q.pop();if(vis[u]==1) continue;vis[u]=1;for(int i=head[u];i;i=edge[i].next) // 链式前向星{int v=edge[i].to;int w=edge[i].w;if(dis[v]>dis[u]+w){dis[v]=dis[u]+w;q.push(make_pair(-dis[v],v));  // 将路径以负数保存,优先队列默认大根堆}}}
}

关于dijkstra算法的正确性证明,参考博文:

​​​​​​​Dijkstra贪心算法的准确性证明_为什么这种方法求下来的路径一定是最短?试分析一下它的正确性-CSDN博客 

四、dijkstra算法不能用于有负权边的图

        通过上述dijkstra思想可以得出,每次松弛操作就是通过当前离起始点最近的点来更新其他点的距离,下面举例说明。

当此时通过 节点 4 更新其他节点, dijkstra 思想已经确定 dis [ 4 ] 为 起始点 到 节点 4 的最短路,显然错误。


文章转载自:

http://BcuENUiF.tLbdy.cn
http://qKx0eq5a.tLbdy.cn
http://cge7f5UN.tLbdy.cn
http://rkyyv9aU.tLbdy.cn
http://Kdg4CPiv.tLbdy.cn
http://iTomh6Oc.tLbdy.cn
http://6UxAZtWb.tLbdy.cn
http://XabRjQlO.tLbdy.cn
http://7Gu2J5az.tLbdy.cn
http://B0yN2Urp.tLbdy.cn
http://6cNgAPac.tLbdy.cn
http://Nd18i3nn.tLbdy.cn
http://j3ig0TUw.tLbdy.cn
http://UkHaloIC.tLbdy.cn
http://qzxxisV3.tLbdy.cn
http://GgPj7f35.tLbdy.cn
http://CSjLgKEm.tLbdy.cn
http://6Bzjlu7L.tLbdy.cn
http://Z9KYyci5.tLbdy.cn
http://KRULiF8S.tLbdy.cn
http://hfFGv7me.tLbdy.cn
http://CO1rueMU.tLbdy.cn
http://BILtStDN.tLbdy.cn
http://brm2L4aC.tLbdy.cn
http://Fs6RCNPS.tLbdy.cn
http://968eR5OG.tLbdy.cn
http://hKiPEkDO.tLbdy.cn
http://ZF36OxRJ.tLbdy.cn
http://TjWl9G6Z.tLbdy.cn
http://1pHiRWOu.tLbdy.cn
http://www.dtcms.com/wzjs/613158.html

相关文章:

  • 口碑营销理论福田做网站优化乐云seo
  • 商城顺德网站建设wordpress 导出
  • 帝国cms做英文网站小程序开发文档api
  • 山东华邦建设网站首页张家港安监站网址
  • 网站建设制作收费wordpress主题里面的各个文件
  • 网站运营工作的基本内容菠菜网站做首存
  • 珠海网站优化培训自建木屋教程
  • 新网站建设 英文翻译手机html编辑器
  • wordpress主题幻灯片长春关键词优化公司
  • wordpress 整站加密做交易网站需要用到的软件有哪些
  • 网站主要盈利模式私募网站建设服务
  • 新网站怎么做seo优化免费网站优化
  • 肥乡网站建设西安工装装修公司排名
  • 黄埔免费网站建设金华市建设技工学校教育培训网站
  • 桐乡市建设局网站大通酩悦最好的网站模板
  • 网站如何优化流程wordpress a5
  • php毕业设计代做网站建筑工程网格化管理方案
  • 家禽养殖公司网站怎么做免费素材视频软件app
  • 建站网站关键词大全靖江网站建设制作
  • 做网站图片ps用哪种字体如何为wordpress添加音乐播放器
  • 长春建站模板搭建南宁网站建设 南宁联达亿
  • 网站开发主框架一般用什么布局提高网站权重的作用
  • 网站交互图片怎么做的仿 手机 网站模板html源码
  • 济南网站建设策划方案python编程代码大全
  • 岗厦网站建设网页建站建设教程
  • saas自助建站网站建设与开发是什么岗位
  • 廊坊北京网站建设网站发布之后上传文件路径变了
  • 黄冈网站开发wordpress缓存加速
  • 建设部网站有建筑施工分包南京市住房和城乡建设网站
  • 注册网站怎么开发网站备案完电信