mirror of
https://github.com/multipleof4/lynchmark.git
synced 2026-01-13 16:17:54 +00:00
1 line
740 B
JavaScript
1 line
740 B
JavaScript
async function findShortestPath(graph,start,end){const {default:PriorityQueue}=await import('https://cdn.jsdelivr.net/npm/js-priority-queue@latest/+esm');const distances=new Map(Object.keys(graph).map(node=>[node,Infinity]));distances.set(start,0);const visited=new Set();const pq=new PriorityQueue({comparator:(a,b)=>a[0]-b[0]});pq.queue([0,start]);while(pq.length){const [currentDistance,node]=pq.dequeue();if(visited.has(node))continue;if(node===end)return currentDistance;visited.add(node);for(const [neighbor,weight] of Object.entries(graph[node]||{})){const newDistance=currentDistance+weight;if(newDistance<(distances.get(neighbor)??Infinity)){distances.set(neighbor,newDistance);pq.queue([newDistance,neighbor]);}}}return Infinity;} |