Dijkstra veya BFS tarafından bulunan en kısa yolun ebeveyn işaretçileriyle ekrana yazdırılması ve 2 boyutlu düzlemde noktalar arası Öklid MST ağacı çıkarılması işlemleridir.
En Kısa Yollar ve Minimum Spanning Tree (MST) algoritmaları, ağ tasarımlarında ve optimizasyon problemlerinde kritik rol oynar.
En Kısa Yol Yazdırma (Shortest Path Printing), Dijkstra veya Bellman-Ford gibi algoritmaların hesapladığı mesafe dizilerinin ötesinde, ebeveyn dizisinden (prev[]) geri izleme yaparak başlangıç düğümünden hedef düğüme giden gerçek yolu sırasıyla yazar.
Öklid MST (Euclidean Minimum Spanning Tree), 2D koordinat düzlemindeki noktaları düğüm kabul eder ve noktalar arasındaki mesafeleri kenar ağırlığı (Öklid mesafesi) sayarak tüm noktaları minimum maliyetle birleştiren ağacı bulur.
Aşağıdaki uygulamalar PDF kaynaklarındaki pseudo kod akışını modern veri yapılarıyla ifade eder. Kenar durumları görünür bırakıldığı için örnekler doğrudan test edilebilir.
1function getEuclideanDistance(p1: [number, number], p2: [number, number]): number {2 return Math.sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2);3}45function buildEuclideanMST(points: [number, number][]): Array<{ u: number; v: number; weight: number }> {6 const n = points.length;7 const edges: Array<{ u: number; v: number; weight: number }> = [];89 // 1. Tüm çiftler arası kenarları hesapla10 for (let i = 0; i < n; i++) {11 for (let j = i + 1; j < n; j++) {12 edges.push({ u: i, v: j, weight: getEuclideanDistance(points[i], points[j]) });13 }14 }1516 // 2. Kruskal çalıştır17 edges.sort((a, b) => a.weight - b.weight);18 const parent = Array.from({ length: n }, (_, i) => i);1920 function find(i: number): number {21 if (parent[i] === i) return i;22 return (parent[i] = find(parent[i]));23 }2425 const mst: Array<{ u: number; v: number; weight: number }> = [];26 for (const edge of edges) {27 const rootU = find(edge.u);28 const rootV = find(edge.v);29 if (rootU !== rootV) {30 mst.push(edge);31 parent[rootU] = rootV;32 if (mst.length === n - 1) break;33 }34 }35 return mst;36}2D düzlemdeki x,y koordinatlarını noktalı virgülle ayırarak girin. Örnek: 0,0; 2,2; 0,2; 2,0
2D düzlemdeki x,y koordinatlarını noktalı virgülle ayırarak girin. Örnek: 0,0; 2,2; 0,2; 2,0
En İyi Durum: O(V^2)
Ortalama Durum: O(V^2)
En Kötü Durum: O(V^2)
O(V^2) tam bağlı graf kenarları - Bu algoritmanın karmaşıklığı belirtilmemiş.
En Kısa Yollar ve MST (Shortest Paths & MST) Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar: