Это один из алгоритмов поиска кратчайших путей на графе. Относится к классу один-ко-всем (one to all), то есть находит кратчайшие пути от заданной вершины до всех остальных. Он довольно старый и работает только для определённого типа графов - с неотрицательными рёбрами. Тем не менее такими графами можно моделировать огромное число прикладных задач: от транспортных и электрических сетей до анализа программного кода. И он отлично подходит для демонстрации студентам ряда принципов и подходов: релаксации, очереди с приоритетом, разных представлений графа в памяти.
Идея алгоритма в итеративном улучшении оценки расстояний до других вершин, которое доказанно сходится к оптимальному за число итераций не более числа вершин в графе. А сама сложность алгоритма зависит от способа представления графа, но не превышает квадрата от числа вершин.