Pseudo Code
الدرس 4 من 9 في دورة خوارزمية Dijkstra's Algorithm - خوارزميات الرسوم البيانية على Coddy.
dijkstra(n, edges, source):
dist = [INF, INF, ...]; dist[source] = 0
visited = all false
repeat n times:
u = unvisited vertex with smallest dist (none reachable -> stop)
visited[u] = true
for each edge (a -> b, weight w):
if a == u and dist[u] + w < dist[b]:
dist[b] = dist[u] + w
replace every remaining INF with -1
return dist- INF هو مجرد رقم أكبر من أي مسافة حقيقية (على سبيل المثال 1000000000).
- إن اختيار الرأس غير المزار ذو المسافة الأصغر (smallest-dist) في كل جولة هو الجوهر الجشع لخوارزمية Dijkstra. كما أن فحص قائمة الحواف المسطحة لعملية الارتخاء (relax) يبقي الكود بسيطاً ويعمل في جميع اللغات.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس خوارزمية Dijkstra's Algorithm - خوارزميات الرسوم البيانية
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)