Ağırlıklı graflarda en kısa yol ve minimum kapsayan ağaç bulma algoritmaları.

Dijkstra Algoritması

Tek kaynaktan tüm düğümlere en kısa yolları bulan algoritma.

Çalışma Prensibi:

  1. Başlangıç düğümünün uzaklığını 0 yap
  2. En küçük uzaklıktaki düğümü seç
  3. Komşularının uzaklıklarını güncelle
  4. Tüm düğümler işlenene kadar tekrarla

Zaman Karmaşıklığı:

  • O(E log V) - Öncelik kuyruğu ile
  • Negatif ağırlıklı kenarlarla çalışmaz

Prim Algoritması

Minimum Kapsayan Ağaç (MST) bulan açgözlü algoritma.

Çalışma Prensibi:

  1. Rastgele bir düğümden başla
  2. MST'deki düğümlerden en küçük ağırlıklı kenarı seç
  3. Kenarı ve düğümü MST'ye ekle
  4. Tüm düğümler eklenene kadar tekrarla

Kruskal Algoritması

Kenarları ağırlıklarına göre sıralayarak MST bulan algoritma.

Çalışma Prensibi:

  1. Tüm kenarları ağırlıklarına göre sırala
  2. En küçük ağırlıklı kenarı al
  3. Döngü oluşturmuyorsa MST'ye ekle
  4. V-1 kenar eklenene kadar tekrarla

Karşılaştırma

AlgoritmaAmaçZaman Karmaşıklığı
DijkstraEn Kısa YolO(E log V)
PrimMSTO(E log V)
KruskalMSTO(E log E)