Docs: Update benchmark results

This commit is contained in:
github-actions[bot]
2025-10-13 18:37:08 +00:00
parent eaf29ad08d
commit af1053eeb0
28 changed files with 558 additions and 20 deletions

View File

@@ -1,2 +1,29 @@
async function findShortestPath(graph,start,end){const{default:PriorityQueue}=await import('https://cdn.jsdelivr.net/npm/js-priority-queue@0.3.0/dist/priority-queue.esm.js');if(start==null||end==null)return Infinity;if(start===end)return 0;if(!graph||!Object.prototype.hasOwnProperty.call(graph,start))return Infinity;const visited=new Set;const dist=new Map([[start,0]]);const pq=new PriorityQueue({comparator:(a,b)=>a[0]-b[0]});pq.queue([0,start]);for(;pq.length;){const[d,node]=pq.dequeue();if(visited.has(node))continue;visited.add(node);if(node===end)return d;const neighbors=graph[node]||{};for(const[neighbor,weight]of Object.entries(neighbors)){if(typeof weight!=='number'||weight<0)continue;const alt=d+weight;if(alt<(dist.get(neighbor)??Infinity)){dist.set(neighbor,alt);pq.queue([alt,neighbor]);}}}return Infinity;}
let u;
const loadQueue=async()=> (u=u||import('https://cdn.jsdelivr.net/npm/js-priority-queue@0.2.0/es6.js')).then(r=>r.default);
export async function findShortestPath(graph,start,end){
if(start===end) return 0;
if(!graph||typeof graph!=='object') return Infinity;
const own=Object.prototype.hasOwnProperty;
if(!own.call(graph,start)||!own.call(graph,end)) return Infinity;
const PriorityQueue=await loadQueue();
const dist=new Map([[start,0]]);
const heap=new PriorityQueue({comparator:(a,b)=>a[1]-b[1]});
heap.queue([start,0]);
while(heap.length){
const [node,score]=heap.dequeue();
if(score>dist.get(node)) continue;
if(node===end) return score;
const edges=graph[node];
if(!edges) continue;
for(const [next,weight] of Object.entries(edges)){
const total=score+weight;
if(total<(dist.get(next)??Infinity)){
dist.set(next,total);
heap.queue([next,total]);
}
}
}
return Infinity;
}
export default findShortestPath;