实现(第 2 部分)
Coddy Dijkstra 算法:图算法 课程的第 6 课,共 9 课。
现在来进行贪心最短路径计算。
挑战
中等现在来构建完整的算法。
编写一个名为 dijkstra 的函数,它接收 n、扁平的 edges 数组(由三元组组成,表示有向边,权重非负)和 source,并返回一个数组,其中位置 v 的值是从 source 到 v 的最短距离。对于无法到达的顶点,使用 -1。
将所有距离初始化为一个较大的“无穷大”,但将源点初始化为 0。然后,重复 n 次,确定距离最近的未访问顶点,并松弛它的出边。
亲手试试
#include <stdlib.h>
int* dijkstra(int n, int* edges, int edges_size, int source, int* returnSize) {
// 在这里编写代码
*returnSize = 0;
return edges;
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
Dijkstra 算法:图算法中的所有课
自己练习: C 在线编译器