Dijkstra algoritmasi, bir ciygede iki kose arasindaki en kisa yolu verir. En kotu ihtimalle (Eger fibbonacci heap ile duygun implemente edilmis ise)
|E|+|V|log|V| ile calisir. Burada |E| ciygenin kenar sayisi, |V| ise kose sayisi.
Algoritmanin adimlari:
- Butun koseleri gidilmemis olarak isaretle
- Butun koselere bir uzaklik degeri ata. Baslangic kosesine 0 digerlerine ise ∞ ata. Guncel kose, baslangic kosesi olsun
- Guncel kosenin ziyaret edilmemis komsularina bak ve uzakliklarini hesapla (kendi uzaklik degerim+komsuma olan uzakligim). Eger hesaplanan uzaklik onceki atanmis degerden kucuk ise atanmis degeri yeni uzaklikla degistir.
- Guncel kosenin komsularina bakildiktan sonra guncel kosesyi gidilmis olarak isaretle.
- Eger Bitis kosesi ziyaret edilmis ise algoritmayi durdur
- Gidilmemis koselerden uzakligi en kucuk olani sec ve algoritmaya 3. adimdan devam et
Bunun disinda bir de A∗ algoritmasi vardir ayni sorun icin gelistirilmistir ama o da baska bi soru olsun.