• Komşuluk matrisinde kenar ağırlıklarını girin
• Boş hücreler sonsuz (∞) mesafe olarak kabul edilir
• Köşegen elemanlar (kendinden kendine mesafe) otomatik olarak 0'dır
Zaman Karmaşıklığı: O(n³) - Üç iç içe döngü kullanır
Alan Karmaşıklığı: O(n²) - İki boyutlu mesafe matrisi
Çalışma Prensibi: Her iterasyonda, bir ara düğüm (k) üzerinden geçen yolları kontrol eder ve daha kısa yol bulursa günceller.
Kullanım Alanları: Ağ yönlendirme, şehir planlama, oyun geliştirme (NPC navigasyonu), graf analizi
Floyd-Warshall algoritması, ağırlıklı bir grafta tüm düğüm çiftleri arasındaki en kısa yolları bulan dinamik programlama tabanlı bir algoritmadır. Roy Warshall ve Robert Floyd tarafından geliştirilmiş olup, pozitif ve negatif kenar ağırlıklarını destekler ancak negatif çevrimler olmamalıdır.
Floyd-Warshall Algoritması algoritmasının farklı programlama dillerindeki uygulamaları aşağıda verilmiştir. Her örnek, algoritmanın temel akışını açık şekilde gösterecek biçimde sunulmuştur.
1function floydWarshall(n: number, edges: [number, number, number][]) {2 const dist: number[][] = Array.from({ length: n }, () => Array(n).fill(Infinity));3 for (let i = 0; i < n; i++) dist[i][i] = 0;4 for (const [u, v, w] of edges) dist[u][v] = w;56 for (let k = 0; k < n; k++) {7 for (let i = 0; i < n; i++) {8 for (let j = 0; j < n; j++) {9 if (dist[i][k] + dist[k][j] < dist[i][j]) {10 dist[i][j] = dist[i][k] + dist[k][j];11 }12 }13 }14 }15 return dist;16}Aşağıya kendi verilerinizi girerek algoritmanın örnek çalışma akışını görebilirsiniz. Virgülle ayrılmış sayılar veya metin değerleri kullanabilirsiniz.
Girilen veri, algoritmanın pseudo kodundaki genel akışa göre örnek bir sonuca dönüştürülür.
En İyi Durum: O(V³)
Ortalama Durum: O(V³)
En Kötü Durum: O(V³)
O(V²) - Bu algoritmanın karmaşıklığı belirtilmemiş.
Floyd-Warshall Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar:
Bu kullanım alanı, algoritmanın benzer problem aileleriyle birlikte incelenmesi için iyi bir başlangıç noktasıdır.
Bu kullanım alanı, algoritmanın benzer problem aileleriyle birlikte incelenmesi için iyi bir başlangıç noktasıdır.
Bu kullanım alanı, algoritmanın benzer problem aileleriyle birlikte incelenmesi için iyi bir başlangıç noktasıdır.