怎么硕呢

这俩肯定是一个人抄了另一个人的代码。就在花费那一部分  一个是d[u] = mp[u][v]+d[v] (迪杰斯特拉)  另一个是d[u] = mp[u][v]

大体思路就是一直找和以之节点相通的节点之间最省钱的路径就完了。

相比较克鲁斯卡尔来说,一个是以点展开验证边。而克鲁斯卡尔是以边为展开看连接点点是否属于都一个跟(并查集)

迪杰斯特拉:

#include<stdio.h>
#include<string.h>
#define INF 0x3f3f3f3f
//测试样例
//4 6
//1 2 1
//1 3 4
//1 4 1
//2 3 3
//2 4 2
//3 4 5
int vis[100];
int money[100][100];
int n;
void Dijkstra(int x)
{int v,u;int d[100];int p[100];memset(d,INF,sizeof(d));memset(vis,0,sizeof(vis));memset(p,-1,sizeof(p));d[x]=0;while(1){u=-1;int minv=INF;for(int i=0;i<n;i++){if(d[i]<minv&&vis[i]!=1){minv=d[i];u=i;}}if(u==-1) break;vis[u]=1;for(v=0;v<n;v++){if(money[u][v]!=INF&&vis[v]!=1){if(d[v]>money[u][v]+d[u]){d[v]=money[u][v]+d[u];p[v]=u;}}}}int sum=0;for(int i=0;i<n;i++){if(x==i) continue;printf("Dijkstra算法:%d点到%d点的最小花费为%d\n",x,i,d[i]); }}
int main()
{int i,j,m;scanf("%d %d",&n,&m);memset(money,INF,sizeof(money));for(i=0;i<m;i++){int x,y,z;scanf("%d %d %d",&x,&y,&z);money[x-1][y-1]=z;money[y-1][x-1]=z;}for(i=0;i<n;i++){printf("当出发点是%d时,到各个点的花费:\n",i); Dijkstra(i);}} 

普利姆:

#include<stdio.h>
#include<string.h>
#define INF 0x3f3f3f3f
//测试样例
//4 6
//1 2 1 1
//1 3 4 0
//1 4 1 1
//2 3 3 0
//2 4 2 1
//3 4 5 0
int vis[100];
int money[100][100];
int n;
void prim()
{int v,u;int d[100];int p[100];memset(d,INF,sizeof(d));memset(vis,0,sizeof(vis));memset(p,-1,sizeof(p));d[0]=0;while(1){u=-1;int minv=INF;for(int i=0;i<n;i++){if(d[i]<minv&&vis[i]!=1){minv=d[i];u=i;}}if(u==-1) break;vis[u]=1;for(v=0;v<n;v++){if(money[u][v]!=INF&&vis[v]!=1){if(d[v]>money[u][v]){d[v]=money[u][v];p[v]=u;}}}}int sum=0;for(int i=0;i<n;i++){if(p[i]!=-1) sum=sum+money[i][p[i]];}printf("prim算法:最小花费为%d",sum);
}
int main()
{int i,j,m;scanf("%d %d",&n,&m);memset(money,INF,sizeof(money));for(i=0;i<m;i++){int x,y,z;scanf("%d %d %d",&x,&y,&z);money[x-1][y-1]=z;money[y-1][x-1]=z;}prim();} 

(迪杰斯特拉)Dijkstra算法 与 普里姆算法(Prim算法)相关推荐

  1. 普里姆(Prim)算法

    普里姆(Prim)算法 普里姆(Prim)算法思想 普里姆(Prim)算法是一某个顶点为起点,逐步找各顶点最小权值的边来构建最小生成树. 换一种说法: 从任意一顶点 v0 开始选择其最近顶点 v1 构 ...

  2. java实现迪杰斯特拉(Dijkstra)算法求解最短路问题

    迪杰斯特拉(Dijkstra)算法是由荷兰计算机科学家狄克斯特拉于1959年提出的.是寻找从一个顶点到其余各顶点的最短路径算法,可用来解决最短路径问题. 迪杰斯特拉算法采用贪心算法的策略,将所有顶点分 ...

  3. 数据结构与算法(7-4)最短路径(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)

    目录 一.最短路径概念 二.迪杰斯特拉(Dijkstra)算法(单源最短路径) 1.原理 2.过程 3.代码 三.弗洛伊德(Floyd)算法(多源最短路径) 1.原理 2.存储 3.遍历 4.代码 参 ...

  4. 059.迪杰斯特拉(Dijkstra)算法的原理以及解决最短路径问题

    1. 迪杰斯特拉(Dijkstra)算法的原理 1.1. 算法应用场景-最短路径问题 1.2. 基本介绍 1.3. 步骤详解 1.4. 思路解析 1.5. 图解步骤 2. 迪杰斯特拉(Dijkstra ...

  5. java数据结构和算法——迪杰斯特拉(Dijkstra)算法

    目录 一.迪杰斯特拉(Dijkstra)算法介绍 二.迪杰斯特拉(Dijkstra)算法过程 三.迪杰斯特拉(Dijkstra)算法--应用场景(最短路径问题) 四.迪杰斯特拉(Dijkstra)算法 ...

  6. 迪杰斯特拉(Dijkstra)算法解决最短路径问题

    Dijkstra 算法介绍 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法.迪杰斯特拉(Dijkstra)算法是最经典的最短路径算法之一,用 ...

  7. c语言迪杰斯特拉算法求最短路径,迪杰斯特拉 ( Dijkstra ) 最短路径算法

    迪杰斯特拉算法介绍 迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径.它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止. 基本 ...

  8. 最短路径算法-迪杰斯特拉(Dijkstra)算法

    最短路径算法-迪杰斯特拉(Dijkstra)算法 迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径. 它的主要特点是以起始点为中心向外层层扩展(广度优先遍历思 ...

  9. Java迪杰斯特拉(Dijkstra)算法与弗洛伊德(Floyd)算法

    1.Java迪杰斯特拉(Dijkstra)算法与弗洛伊德(Floyd)算法 1.1 迪杰斯特拉(Dijkstra)算法 1.1.1 迪杰斯特拉(Dijkstra)算法介绍 迪杰斯特拉(Dijkstra ...

  10. 数据结构——图——迪杰斯特拉(Dijkstra )算法

    数据结构--图--迪杰斯特拉(Dijkstra )算法 这是一个按路径长度递增的次序产生最短路径的算法.它的思路大体是这样的. 比如说要求图7-7-3中顶点v0到顶点v1的最短距离,没有比这更简单的了 ...

最新文章

  1. 将两个数组河滨_两名3岁男孩在河滨公园玩耍迷了路 幸亏被好心人“捡”到
  2. Gridview一次更新所有记录
  3. 【OJ】洛谷数组题单题解锦集
  4. PaaS、DevOps、OpenShift与业务中台的实现
  5. outlook搜索栏跑到上面去了_南昌搜索引擎seo优化
  6. ad如何计算电路板的pin数量_PCB厂一到八层电路板的叠层设计方式
  7. 第五章 机械臂的组装及控制
  8. matlab 波形仿真,MATLAB仿真波形的处理
  9. 关于对《上海市人民政府办公厅关于执行〈上海市非营业性客车额度拍卖管理规定〉若干要求的通知》的政策解读...
  10. linux去除文件中重复行,Linux Shell教程 - 如何删除重复的文本行
  11. Java虚拟机(JVM源码):编译OpenJDK源码
  12. 红石外汇|每日汇评:鲍威尔讲话助推黄金走出困境
  13. tekton TriggerTemplate资源
  14. 汇编 跳转指令: JMP、JCXZ、JECXZ、JA、JE、JNA、JNE、JZ、JB、JS、JC、JNC、JG、JNBE、JO、JP、JL、JPO、JGE、JLE 汇编语言
  15. Juniper SRX Junos升级
  16. 我愿称之为最容易上手的编程语言——Yaklang(I)
  17. 学画画要花多少钱_高二学美术的费用大概是多少 要花多少钱
  18. 表单提交checkbox为必选
  19. Kubuntu 15.10 高清截图欣赏
  20. Django的form组件提交时错误不显示或无法提交

热门文章

  1. 《机器学习实战》学习笔记(四) : 朴素贝叶斯的基本原理
  2. DeepDream、反向运行一个卷积神经网络在 DeepDream和卷积神经网络的可视化 中的应用
  3. 微信小程序用表格<table></table>查看数据
  4. 墨者学院 - CMS系统漏洞分析溯源(第9题)
  5. 软件工程(速成)——总结
  6. 海康摄像机rtsp地址格式(官方最新版)
  7. activiti并发多实例子流程任务处理
  8. 文件不以‘%PDF-’开始 解决方案
  9. Linux中top命令参数详解、常用快捷键
  10. winscp + putty 免登录密码