Краткий ответ: Дейкстра - ваш лучший выбор, если вы хотите всего несколько кратчайших путей, а алгоритм Флойда-Варшалла лучше, если вы хотите найти кратчайшие пути между каждой парой узлов.
Алгоритм Дейкстры находит кратчайшие пути от одного источника ко всем остальным узлам графа для взвешенных графов. Он работает на плотных графиках за O (V ^ 2) времени.
Флойд-Варшалл находит кратчайшие пути между всеми парами узлов. Это требует плотного представления и выполняется за O (V ^ 3) времени. Он работает на взвешенных или невзвешенных графиках.
Даже если ваш граф плотный (в соответствии с названием вашего вопроса), может быть полезно преобразовать его в разреженный граф и использовать разреженную реализацию Дейкстры, если вы просто хотите найти несколько кратчайших путей. Разреженные пробеги Дейкстры в O (E log V).
Обратите внимание, что это предполагает, что все ваши веса ребер неотрицательны; если они есть, то вы не можете использовать ни один из них. Вам придется использовать еще более медленный алгоритм, например, Bellman-Ford.