谁能举一个Pascal中Dijkstra算法求单源最短路径问题的例子并作一些说明 编程语言一共有多少种?

\u8ba1\u7b97\u673a\u7f16\u7a0b\u8bed\u8a00\u7684\u7f16\u7a0b\u8f6f\u4ef6\u9700\u8981\u4ec0\u4e48\u8bed\u8a00\uff1f

\u8ba1\u7b97\u673a\u7f16\u7a0b\u8bed\u8a00\uff1a\u7528\u4e8e\u4eba\u4e0e\u8ba1\u7b97\u673a\u4e4b\u95f4\u901a\u4fe1\u7684\u8bed\u8a00

\u7f16\u7a0b\u8bed\u8a00\u7684\u79cd\u7c7b\u7e41\u591a\uff0c\u603b\u7684\u6765\u8bf4\u5206\u4e3a\u673a\u5668\u8bed\u8a00\u3001\u6c47\u7f16\u8bed\u8a00\u4ee5\u53ca\u9ad8\u7ea7\u8bed\u8a00\u4e09\u5927\u7c7b\u3002
\u673a\u68b0\u8bed\u8a00\uff08machine language\uff09\uff1a\u8ba1\u7b97\u673a\u53ef\u76f4\u63a5\u8bc6\u522b\u3001\u8fd0\u884c\u7684\u4e8c\u8fdb\u5236\u4ee3\u7801\uff0c\u6267\u884c\u901f\u5ea6\u5feb\uff0c\u8d44\u6e90\u5360\u7528\u5c11\uff0c\u4f46\u53ef\u8bfb\u6027\u4e0d\u5f3a\uff0c\u7f16\u7a0b\u590d\u6742\uff1b
\u6c47\u7f16\u8bed\u8a00\uff08assembly language\uff09\uff1a\u4e00\u79cd\u7528\u4e8e\u7535\u5b50\u8ba1\u7b97\u673a\u3001\u5fae\u5904\u7406\u5668\u3001\u5fae\u63a7\u5236\u5668\u6216\u5176\u4ed6\u53ef\u7f16\u7a0b\u5668\u4ef6\u7684\u4f4e\u7ea7\u8bed\u8a00\uff0c\u4ea6\u79f0\u4e3a\u7b26\u53f7\u8bed\u8a00\u3002\u76ee\u6807\u4ee3\u7801\u7b80\u77ed\uff0c\u5360\u7528\u5185\u5b58\u5c11\uff0c\u6267\u884c\u901f\u5ea6\u5feb\uff0c\u4f46\u7f3a\u4e4f\u53ef\u79fb\u690d\u6027\uff0c\u7f16\u7a0b\u590d\u6742\uff1b
\u9ad8\u7ea7\u8bed\u8a00\uff08High-level programming language\uff09\uff1a\u76f8\u5bf9\u4e8e\u673a\u5668\u8bed\u8a00\u4ee5\u53ca\u6c47\u7f16\u8bed\u8a00\uff0c\u9ad8\u7ea7\u8bed\u8a00\u7684\u53ef\u8bfb\u6027\u5f3a\uff0c\u53ef\u79fb\u690d\u6027\u9ad8\uff0c\u4e00\u822c\u901a\u8fc7\u4e8b\u5148\u7f16\u597d\u7684\u4e00\u4e2a\u53eb\u505a\u7f16\u8bd1\u7a0b\u5e8f\u7684\u673a\u5668\u8bed\u8a00\u7a0b\u5e8f\u7f16\u8bd1\u6210\u7528\u673a\u5668\u6307\u4ee4\u8868\u793a\u7684\u76ee\u6807\u7a0b\u5e8f\u3002\u73b0\u5728\u6d41\u884c\u7684\u9ad8\u7ea7\u8bed\u8a00\u6709Java\u3001C\u8bed\u8a00\u3001C++\u3001C#\u3001Pascal\u3001Basic\u7b49\u7b49\u3002

解释一下吧
举一个简单的例子
设图
G(V,E)
(V是顶点集合,E是边集合)
顶点1
---2---
顶点2
---3---
顶点3
(无向图,关于无向图这一点,不理解也不影响)
这个时候
邻接矩阵
0
2

2
0
3

3
0
(∞
表示无连接;0表示该边连接了两个相同的顶点,是不存在的)
此时,由图可以知道,实际上从1到3并不是无连接,可以通过顶点2,连接顶点3,之间的距离为5(2+3)。那么就可以在1-3之间直接创造一条边,权值为5。dijkstra算法以及其他SPFA,floyd求最短路径的算法都是用
以上所举的思想为中心思想的。这种操作
称作:松弛操作。
if
V[i]+E[i,j]<V[j]
then

V[j]:=V[i]+E[i,j];
(其中V[i]表示目前源点到点i的最短距离,E是邻接矩阵)
对所有的顶点都进行一次对其他顶点的关于源点的松弛操作,就可以创造出源点到其他各个点最短边,并把源点到点i最短距离存储在V数组中
Const

maxn=??;
Var

i,j,n:longint;

E:Array[1..maxn,1..maxn]of
longint;

V:Array[1..maxn]of
longint;
Begin

Fillchar(E,sizeof(e),0);

Fillchar(V,sizeof(V),0);

Read(n);

For
i:=1
to
n
do

For
j:=1
to
n
do

Read(E[i,j]);

V[1]:=0;

For
i:=1
to
n
do

For
j:=2
to
n
do

if
E[i,j]>0
then

if
(V[i]+E[i,j]<V[j])or(V[j]=0)
then

V[j]:=v[i]+E[i,j];
End.
(其中顶点1为源点)

  • 璋佽兘涓句竴涓狿ascal涓璂ijkstra绠楁硶姹傚崟婧愭渶鐭矾寰勯棶棰樼殑渚嬪瓙骞朵綔涓浜涜鏄...
    绛旓細锛1锛変粠涓涓椤剁偣鍒板叾浣欏悇椤剁偣鐨勬渶鐭矾寰 瀵逛簬涓涓惈鏈塶涓《鐐瑰拰e鏉¤竟鐨勫浘鏉ヨ锛屼粠鏌愪釜椤剁偣vi鍒板叾浣欎换涓椤剁偣vj鐨勬渶鐭矾寰勶紝鍙兘鏄畠浠箣闂寸殑杈癸紙vi锛寁j锛夛紝涔熷彲鑳芥槸缁忚繃k涓腑闂寸偣鍜宬+1鏉¤竟鎵褰㈡垚鐨勮矾寰勶紙1鈮 鈮-2锛夈傞鍏堟潵鍒嗘瀽Dijkstra鐨勭畻娉曟濇兂 璁惧浘G鐢ㄩ偦鎺ョ煩闃电殑鏂瑰紡瀛樺偍鍦℅A涓紝GA[I...
  • 扩展阅读:c++和python先学哪个 ... 百乐peel官网购买 ... pascal油缸官网 ... pascal voc ... 现在还有人用pascal语言吗 ... pascal语言还要不要学 ... 日本pascal中国官网 ... pascal为什么被淘汰 ... pedro pascal ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网