إعطاء رسم بياني مرجح موجه أو غير موجه برؤوس n وحواف m. أوزان جميع الحواف غير سالبة. تم تحديد بعض قمة البداية s. تحتاج إلى العثور على أطوال أقصر المسارات من قمة الرأس s إلى جميع الرؤوس الأخرى ، وكذلك توفير طريقة لطباعة أقصر المسارات نفسها.
& nbsp؛
تسمى هذه المشكلة "مشكلة أقصر مسار بمصدر واحد" (مصدر واحد مشكلة أقصر المسارات).
يؤدي نفس المهام مثل 1-K BFS ، ولكن بغض النظر عن K. أيضًا ، مثل 1-K BFS ، فإنه لا يتعامل بشكل صحيح مع الحواف السلبية

الخوارزمية :
تتكون خوارزمية Dijkstra نفسها من تكرارات N. في التكرار التالي ، قمة الرأس V & nbsp؛ مع أصغر مسافة إليه من بين القمم التي لم يتم تحديدها بعد ، يتم تمييز هذا الرأس ويحدث ارتخاء القمم المجاورة منه.


& nbsp ؛ السلوك المقارب النهائي للخوارزمية هو: O (n 2 + m)

نظرًا لأن السلوك المقارب للتنفيذ الساذج لخوارزمية Dijkstra هو: & nbsp؛ \ (O (n ^ 2 + m) \) ، فكلما زاد عدد الرؤوس ، سرعة العمل تصبح غير مرضية.
& nbsp؛ يمكن استخدام هياكل البيانات المختلفة للتحسين: & nbsp؛ Fibonacci heaps، set مجموعات أو قائمة انتظار ذات أولوية & nbsp؛ priority_queue. & nbsp؛
ضع في اعتبارك مثالًا باستخدام set ، ونتيجة لذلك ، فإن المقاربات النهائية هي: & nbsp؛ \ (O (n log (m)) \) ، التفاصيل .