dijkstra'实施中的错误;javascript中的s算法
我根据wiki中给出的伪代码编写了此代码。但仍有一些错误。请帮助我的编码,并告诉我如何才能改善它,我正在尝试从几个小时! 我已将我知道的那一行标记为错误。我不知道我错在哪里dijkstra'实施中的错误;javascript中的s算法,javascript,algorithm,dijkstra,Javascript,Algorithm,Dijkstra,我根据wiki中给出的伪代码编写了此代码。但仍有一些错误。请帮助我的编码,并告诉我如何才能改善它,我正在尝试从几个小时! 我已将我知道的那一行标记为错误。我不知道我错在哪里 var graph = [{ from: [1, 2, 3, 4], to: [3, 3, 5, 6] }]; var shortestpath = function (graph, source) { for (i in graph) {
var graph = [{
from: [1, 2, 3, 4],
to: [3, 3, 5, 6]
}];
var shortestpath = function (graph, source) {
for (i in graph) {
dist[i] = infinty;
prev[i] = undefined;
}
dist[source] = 0;
var q = [];
q.push(graph.value);
while (q != 0) {
var min_distance = infinity;
var u = null;
for (var i in dist) {
if (dist[i] < min_distance) {
u = i;
min_distance = dist[u];
}
}
if (dist[u] = infinity) {
break;
}
q.pop(u);
for (v in u) {
var alt = dist[u] + dist_between(u, v);
if (alt < dist[v]) {
dist[v] = alt;
previous[v] = u;
q.sort(v);
}
}
}
return dist;
}
}
var图=[{
发件人:[1,2,3,4],
致:[3,3,5,6]
}];
var shortestpath=函数(图形,源){
对于(图中的i){
dist[i]=infinty;
prev[i]=未定义;
}
距离[来源]=0;
var q=[];
q、 push(图形值);
while(q!=0){
var min_距离=无穷大;
var u=null;
用于(var i在距离内){
if(距离[i]<最小距离){
u=i;
最小距离=距离[u];
}
}
if(dist[u]=无穷大){
打破
}
q、 流行音乐(u);
对于(u中的v){
var alt=距离[u]+距离(u,v)之间的距离;
如果(alt
根据,u
不应该是一个列表,而是一个简单的整数,它包含Q
中距离较小的顶点的索引
如果您想要具有最小距离的顶点,则必须迭代顶点数组,跟踪到目前为止找到的最小距离,并将具有此抖动的顶点指定给u
var min_distance = infinity;
var u = null;
for (var i in dist) {
if (dist[i] < min_distance) {
u = i;
min_distance = dist[u];
}
}
var min_距离=无穷大;
var u=null;
用于(var i在距离内){
if(距离[i]<最小距离){
u=i;
最小距离=距离[u];
}
}
根据,u
不应该是一个列表,而是一个简单的整数,它包含Q
中距离较小的顶点的索引
如果您想要具有最小距离的顶点,则必须迭代顶点数组,跟踪到目前为止找到的最小距离,并将具有此抖动的顶点指定给u
var min_distance = infinity;
var u = null;
for (var i in dist) {
if (dist[i] < min_distance) {
u = i;
min_distance = dist[u];
}
}
var min_距离=无穷大;
var u=null;
用于(var i在距离内){
if(距离[i]<最小距离){
u=i;
最小距离=距离[u];
}
}
请检查我是否做了正确的更改。如果没有请编辑它。请检查我是否做了正确的更改。如果没有请编辑它。