Как написать код для расчета кратчайшего пути в схеме с расстояниями?
Только начал изучать JS и программирование вообще, пытаюсь написать код который будет искать в схеме кратчайший путь от a до с. Столкнулся с двумя проблемами:
- как сделать, чтобы код адекватно работал если везде будут одинаковые расстояния?
- если получилось сразу несколько кратчайших путей, как сделать чтобы их все можно было увидеть?
function raschetPuti(ab, bc, cd, da, ac, bd) {
let korotki1
let korotki2
let korotki3
let korotki4
let korotki5
const ba = ab
const cb = bc
const dc = cd
const ad = da
const ca = ac
const db = bd
if (ab < ad && ab < ac) {
if (bd < bc) {
const korotki1 = ab + bd + dc
console.log('кратчайший путь a-b-d-c длиной', korotki1)
}
else {
const korotki2 = ab + bc
console.log('кратчайший путь a-b-c длиной', korotki2)
}
}
else if (ac < ab && ac < ad) {
const korotki3 = ac
console.log('кратчайший путь a-c длиной', korotki3)
}
else if (ad < ac && ad < ab) {
if (db < dc) {
const korotki4 = ad+db+bc
console.log('кратчайший путь a-d-b-c длиной', korotki4)
}
else {
const korotki5 = ad + dc
console.log('кратчайший путь a-d-c длиной', korotki5)
}
}
else {
console.log('не нашел')
}
}
function raschetPuti(ab, bc, cd, da, ac, bd) {
let korotki1
let korotki2
let korotki3
let korotki4
let korotki5
const ba = ab
const cb = bc
const dc = cd
const ad = da
const ca = ac
const db = bd
if (ab < ad && ab < ac) {
if (bd < bc) {
const korotki1 = ab + bd + dc
console.log('кратчайший путь a-b-d-c длиной', korotki1)
}
else {
const korotki2 = ab + bc
console.log('кратчайший путь a-b-c длиной', korotki2)
}
}
else if (ac < ab && ac < ad) {
const korotki3 = ac
console.log('кратчайший путь a-c длиной', korotki3)
}
else if (ad < ac && ad < ab) {
if (db < dc) {
const korotki4 = ad+db+bc
console.log('кратчайший путь a-d-b-c длиной', korotki4)
}
else {
const korotki5 = ad + dc
console.log('кратчайший путь a-d-c длиной', korotki5)
}
}
else {
console.log('не нашел')
}
}
Источник: Stack Overflow на русском