日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

迪杰斯特拉算法简单分析

發(fā)布時(shí)間:2023/12/15 综合教程 43 生活家
生活随笔 收集整理的這篇文章主要介紹了 迪杰斯特拉算法简单分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

迪杰斯特拉算法主要是產(chǎn)生從源點(diǎn)到其他點(diǎn)的最短路徑,換句話說這些最短路徑也有著長短的區(qū)別。

迪杰斯特拉算法的主要思路:

1.按照長短依次來產(chǎn)生最短路徑。

2.并且在產(chǎn)生最短路徑的過程中,用現(xiàn)有最短的最短路徑來進(jìn)行松弛操作。

具體實(shí)現(xiàn)的方法:數(shù)據(jù)結(jié)構(gòu):1個(gè)鄰接矩陣啊a[n][n],1個(gè)一位數(shù)組dis[n](用來存最短路徑),加上一個(gè)標(biāo)記數(shù)組flag[n](這個(gè)數(shù)組一定要有,已經(jīng)用來松弛過的邊就不能再使用了)。

大致流程:

1.首先一個(gè)for循環(huán)對(duì)dis數(shù)組進(jìn)行初始化。

2.緊接著一個(gè)for循環(huán)用來依次產(chǎn)生最短路徑,里面嵌套兩個(gè)for循環(huán),一個(gè)用來找到當(dāng)前最短的最短路徑,下一個(gè)用來進(jìn)行松弛操作。

看個(gè)模板題:

hdu2544

Problem Description

在每年的校賽里,所有進(jìn)入決賽的同學(xué)都會(huì)獲得一件很漂亮的t-shirt。但是每當(dāng)我們的工作人員把上百件的衣服從商店運(yùn)回到賽場的時(shí)候,卻是非常累的!所以現(xiàn)在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?

Input

輸入包括多組數(shù)據(jù)。每組數(shù)據(jù)第一行是兩個(gè)整數(shù)N、M(N<=100,M<=10000),N表示成都的大街上有幾個(gè)路口,標(biāo)號(hào)為1的路口是商店所在地,標(biāo)號(hào)為N的路口是賽場所在地,M則表示在成都有幾條路。N=M=0表示輸入結(jié)束。接下來M行,每行包括3個(gè)整數(shù)A,B,C(1<=A,B<=N,1<=C<=1000),表示在路口A與路口B之間有一條路,我們的工作人員需要C分鐘的時(shí)間走過這條路。 輸入保證至少存在1條商店到賽場的路線。

Output

對(duì)于每組輸入,輸出一行,表示工作人員從商店走到賽場的最短時(shí)間。

Sample Input

2 1

1 2 3

3 3

1 2 5

2 3 5

3 1 2

0 0

Sample Output

3

2

代碼:

#include <iostream>
#define  INF 99999999
#include <string.h>
using namespace std;

int a[110][110],dis[110],flag[110];

void dijkstra(int n,int start){
    for(int i=1;i<=n;i++){
      dis[i]=a[start][i];
    }
    int minl,tmp;
    memset(flag,0,sizeof(flag));
    for(int i=2;i<=n;i++){
    minl=INF;
    for(int j=2;j<=n;j++){
        if(dis[j]<minl&&flag[j]==0){
          minl=dis[j];
          tmp=j;
        }
    }
    for(int j=2;j<=n;j++){
    if(dis[tmp]+a[tmp][j]<dis[j])
      dis[j]=dis[tmp]+a[tmp][j];
    }
    flag[tmp]=1;
    }
}

int main(){
    int n,m;
    int x,y,path;
    while(cin>>n>>m&&n!=0&&m!=0){
    for(int i=1;i<=n;i++)
       for(int j=1;j<=n;j++){
          if(i!=j)
          a[i][j]=INF;
          else
          a[i][j]=0;
       }
    for(int i=1;i<=m;i++){
      cin>>x>>y>>path;
      a[x][y]=a[y][x]=path;
    }
    dijkstra(n,1);
    cout<<dis[n]<<endl;
    }
    return 0;
}

補(bǔ)充:

迪杰斯特拉算法是A*算法的最簡單版本(無啟發(fā)式函數(shù)),也是我們常說的一致代價(jià)搜索。

迪杰斯特拉算法最好采用優(yōu)先隊(duì)列的形式來實(shí)現(xiàn),方便后面進(jìn)行各種改進(jìn)。

總結(jié)

以上是生活随笔為你收集整理的迪杰斯特拉算法简单分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美xxxx性 | 夜夜骑av| 日韩在线国产 | 伊人久久影视 | 青青草精品在线 | 日韩欧美中文字幕一区 | 欧美一区永久视频免费观看 | 亚洲无av在线中文字幕 | 91爱视频 | 91国产高清 | 国产亚洲欧美精品久久久www | 久久久久久久伊人 | www.av72 | 97色伦97色伦国产欧美空 | 性一区| 伊人免费在线观看 | www.插插| www.狠狠艹 | 免费观看高清在线 | 97在线公开视频 | 在线观看的黄网 | 私人影院毛片 | 亚洲成人一二区 | 黄色日韩视频 | 亚洲网站色| 国产精品毛片久久 | 精品一区二区三区视频日产 | 国产日本欧美一区二区 | 狠狠躁夜夜躁xxxxaaaa | 激情综合视频 | 涩涩av| 亚洲午夜视频在线观看 | 五月婷婷丁香综合 | 亚洲性色视频 | 三级黄色av| 色香五月| 亚州av网站 | 久久狠狠婷婷 | 精品久久久噜噜噜久久久 | 欧美日韩国产一区二区 | 成人一区二区三区在线 | 不卡一区二区三区四区 | 亚洲综合色小说 | 亚洲乱码国产乱码精品精大量 | 一区二区三区在线播放 | 日韩毛片在线视频 | 国产精品97| 超碰在线伊人 | 四虎国产精品永久在线国在线 | 丝袜在线视频 | 五月天精品视频 | 国产精品久久久无码一区 | 国产精品久久久久久久久久东京 | 国产精品视频99 | 丁香花电影在线观看免费高清 | 国产又色又爽无遮挡免费 | 被两个男人吃奶三p爽文 | 插插插色综合 | 久久精品视频一区二区三区 | 色多多视频在线观看 | 免费黄色大片网站 | 国产在线观看免费av | 一区二区中文字幕在线观看 | 日日射av | y11111少妇 | av免费在线不卡 | 免费看黄网站在线 | 91精品福利视频 | 欧美高h | 在线观看视频91 | 日本亲近相奷中文字幕 | 女人喷潮完整视频 | 日韩欧美成人一区二区 | 在线免费av网址 | 肉视频在线观看 | 久久精品综合网 | missav | 免费高清av在线看 | 日韩网站在线播放 | www.成人国产 | 夜夜撸小说 | 中国a级大片 | 国产模特av私拍大尺度 | 国产明星换脸xxxx色视频 | 色av性av丰满av | www.国产成人 | www.蜜臀| 日本a v网站 | 国产精品成人va在线观看 | 国产精品久久久久久亚洲调教 | 欧美综合激情 | 超爽视频| 海角社区id:1220.7126,10. | 久久亚洲免费视频 | 狠狠艹av | 精品视频一二三区 | 久久91精品 | 日韩精品在线看 | 黑人一区二区 | 九九热伊人|