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

windows7 iis配置 网站百度推广怎么才能效果好

windows7 iis配置 网站,百度推广怎么才能效果好,活动策划书,过年做那些网站致富简介 迪杰斯特拉(Dijkstra)算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它是由荷兰计算机科学家艾兹格迪科斯彻(Edsger Dijkstra)在1956年提出的。Dijkstra算法适用于处理带有非负权重的图。迪杰斯特拉…

简介

迪杰斯特拉(Dijkstra)算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它是由荷兰计算机科学家艾兹格·迪科斯彻(Edsger Dijkstra)在1956年提出的。Dijkstra算法适用于处理带有非负权重的图。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。适用的是单源路径最短路问题,对于多源则采用弗洛伊德(Floyd)算法

Dijkstra算法原理

  1. 初始化

    • 创建一个距离数组dist,用来存储从起始节点到每个节点的最短距离,初始时将起始节点的距离设为0,其余节点设为无穷大。
    • 创建一个优先队列(通常使用最小堆)来存储待处理的节点,初始时将起始节点加入队列。
  2. 处理节点

    • 从优先队列中取出距离最小的节点,标记为已处理。
    • 对于该节点的每个邻接节点,计算从起始节点到该邻接节点的距离。如果这个距离小于当前记录的距离,则更新距离并将该邻接节点加入优先队列。
  3. 重复

    • 重复步骤2,直到优先队列为空,或者所有节点都被处理。

如果还看不明白,请看下图

举个栗子
示例图
 
图的邻接表表示
  • 节点0到节点1的边权重为1
  • 节点0到节点2的边权重为4
  • 节点1到节点2的边权重为2
  • 节点1到节点3的边权重为5
  • 节点2到节点4的边权重为1
  • 节点4到节点3的边权重为1
Dijkstra算法执行过程

假设我们从节点0开始,以下是distvisited数组在每一步的变化:

  1. 初始化

    • dist = [0, ∞, ∞, ∞, ∞] (从起始节点0到其他节点的距离)
    • visited = [false, false, false, false, false] (所有节点未被访问)
  2. 处理节点0

    • 当前节点:0
    • 更新邻接节点1和2:
      • dist[1] = 1(0到1的距离)
      • dist[2] = 4(0到2的距离)
    • 更新后的数组:
      • dist = [0, 1, 4, ∞, ∞]
      • visited = [true, false, false, false, false]
  3. 处理节点1(下一个最小距离的节点):

    • 当前节点:1
    • 更新邻接节点2和3:
      • dist[2] = min(4, 1 + 2) = 3(更新0到2的距离)
      • dist[3] = 1 + 5 = 6(更新0到3的距离)
    • 更新后的数组:
      • dist = [0, 1, 3, 6, ∞]
      • visited = [true, true, false, false, false]
  4. 处理节点2

    • 当前节点:2
    • 更新邻接节点4:
      • dist[4] = min(∞, 3 + 1) = 4(更新0到4的距离)
    • 更新后的数组:
      • dist = [0, 1, 3, 6, 4]
      • visited = [true, true, true, false, false]
  5. 处理节点4

    • 当前节点:4
    • 更新邻接节点3:
      • dist[3] = min(6, 4 + 1) = 5(更新0到3的距离)
    • 更新后的数组:
      • dist = [0, 1, 3, 5, 4]
      • visited = [true, true, true, false, true]
  6. 处理节点3

    • 当前节点:3
    • 由于3没有未访问的邻接节点,算法结束。
    • 最终的dist数组为:
      • dist = [0, 1, 3, 5, 4](从节点0到各个节点的最短距离)
    • visited数组为:
      • visited = [true, true, true, true, true](所有节点均已访问)
最终结果
  • 从节点0到节点1的最短距离是1
  • 从节点0到节点2的最短距离是3
  • 从节点0到节点3的最短距离是5
  • 从节点0到节点4的最短距离是4

这个过程展示了Dijkstra算法如何逐步更新每个节点的最短路径,并标记已访问的节点。

代码实现

#include<iostream>
using namespace std;
int n,e,s;//n个顶点,e条边,s是起点
int dis[101];//dis[i]起点到i的最短距离
int vis[101];//标记是否找到
int edge[101][101];//记录路径i->j有路径
int main()
{cin>>n>>e;for(int i=1;i<=n;i++){dis[i]=100000;}for(int i=1;i<=e;i++){//邻接矩阵存储int a,b,c;cin>>a>>b>>c;edge[a][b]=c;}cin>>s;dis[s]=0;//起点到起点不需要代价for(int i=1;i<=n;i++){int minn=inf,minx;for(int j=1;j<=n;j++){if(dis[j]<minn&&vis[j]==0){//寻找此点到其他点的最小距离minn=dis[j];minx=j;}}vis[minx]=1;//标记到达的最小点for(int j=1;j<=n;j++){if(edge[minx][j]>0)//有边的话 {if(minn+edge[minx][j]<dis[j]){dis[j]=minn+edge[minx][j];//更新以最小距离点最为中转点的最小距离}}}}for(int i=1;i<=n;i++){//打印最短距离cout<<dis[i]<<" ";}return 0;
}

http://www.hkea.cn/news/27188/

相关文章:

  • 网站首页滚动图片怎么做谷歌搜索关键词排名
  • 嵩县网站开发友情链接获取的途径有哪些
  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好
  • 今日头条建站工具何鹏seo
  • wordpress 培训模板优化落实疫情防控新十条
  • 关于做外汇现货的网站太原整站优化排名外包
  • 星悦做任务网站是新网站百度收录
  • 十大营销网站seo关键词查询工具
  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息
  • 做网站需要什么资金2022今天刚刚发生地震了
  • 建设网站费用主要包括哪些google商店
  • 专注邯郸建设手机网站贴吧友情链接在哪
  • 网站备案拍照背景志鸿优化网官网
  • 网站百度知道怎么做推广网站搜索引擎优化的方法
  • 网站建设注意哪些问题sem和seo是什么职业岗位
  • 一_建设网站前的市场分析奶茶软文案例300字
  • 做网站智能工具江阴企业网站制作
  • 怎么看网站有没有做推广大数据营销系统多少钱
  • 广东工厂搜索seoseo平台优化服务
  • 网站开发平台 eclipseseo网站推广案例
  • 什么网站做调查能赚钱关键词优化报价推荐
  • 网站开发职业认知小结开发一个app平台大概需要多少钱?