常用十种算法—Dijkstra算法
声明:以下是学的尚硅谷网课并结合网上资料所记的笔记。可能会有一些错误,发现了会修改。
迪杰斯特拉(Dijkstra)算法
应用场景-最短路径问题
算法介绍
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个结点到其他结点的最短路径。它的主要特点是以起始点为中心向外层扩展(广度优先搜索思想),知道扩展到终点为止。
算法过程
图解参考该文章 Dijkstra算法(三)之 Java详解
代码
import java.util.Arrays;
public class DijkstraAlgorithm {
public static void main(String[] args) {
char[] vertex = {
'A', 'B', 'C', 'D', 'E', 'F', 'G' };
// 邻接矩阵
int[][] matrix = new int[vertex.length][vertex.length];
final int N = 65535; // 表示不可连接
matrix[0] = new int[] {
N, 5, 7, N, N, N, 2 };
matrix[1] = new int[] {
5, N, N, 9, N, N, 3 };
matrix[2] = new int[] {
7, N, N, N, 8, N, N };
matrix[3] = new int[] {
N, 9, N, N, N, 4, N };
matrix[4] = new int[]