Dijkstra算法代码来源于 作者:无名小卒1990
Floyd算法,来源于 小石老师课程资源
视频学习
Dijkstra算法原理
https://www.bilibili.com/video/BV1QK411V7V4?from=search&seid=16592423916000157660
Floyd算法原理
https://www.bilibili.com/video/BV1Mt411x7CH?t=594&p=6
Dijkstra
例如上图,从D出发,到各点的距离:
D[5 9 inf 0 15 6 inf], (ACDEFG排序)
找出矩阵D[ ]中最小的值,离D最近的是A节点,再从A节点出发,到B节点的
距离为7,而5+7>9,所以D[5 9 inf 0 15 6 inf]不需要更新。A节点标记已经遍
历,并给其赋值为inf,即D[inf 9 inf 0 15 6 inf]。
继续重复找出矩阵D[ ]中最小值,重复上述操作,直到所有节点都遍历过。
Dijkstra源程序:
主函数 tulun1.m
weight = input('please enter the weight:');
start = input('please enter the start:');
terminal = input('please enter the terminal:');
[dis, path]= Dijk(weight,start, terminal)
Dijkstra函数 Dijk.m
%% Dijkstra算法函数
function [ distance path] = Dijk( W,st,e )
%DIJK Summary of this function goes here
% W 权值矩阵 st 搜索的起点 e 搜索的终点
n=length(W);%计算节点数
D = W(st,:);%记录起点到各点距离,此时,为初始时刻,