1.跟着视频完整写出了dijkstra的java算法
package qwert;
import java.util.Scanner;
public class M02_Dijkstra {
 public static void main(String[] args) {
		// TODO Auto-generated method stub
		int n,m,x;//n个点m条边,x表示初始点
		Scanner cin=new Scanner(System.in) ;//?
			n=cin.nextInt();
			m=cin.nextInt();
			x=cin.nextInt();
		int value[][]=new int[n+1][n+1];//存放两点的路径长度?
		int dis[]=new int[n+1];//存放初始点第一个点到其他点的最短路径
		for(int i=1;i<=n;i++) {
			dis[i]=Integer.MAX_VALUE;
			 for(int j=1;j<=n;j++) { 
				 if(i==j) value[i][j]=0;
				 else value[i][j] =-1;//两点初始为-1(没有路)
			 }
		}
		for(int i=0;i<m;i++) {//输入每条边的长度
			int a=cin.nextInt();
			int b=cin.nextInt();
			int v=cin.nextInt();
			value[a][b]=v;
			if(a==x) {
				dis[b]=v;//至此dis里已经存了初始点到所有点的距离
			}
		
		}
	search(x,dis,value,n);	
}
	private static void search(int x,int dis[],int value[][],int n) {
		boolean mark[]=new boolean[n+1];
		for(int i=1;i<=n;i++) {
			mark[i]=false;
		}
		mark[x]=true;
		dis[x]=0;
		int count=1;
		while(count<=n) {
			int loc=0;
			int min=Integer.MAX_VALUE;
			for (int i=1;i<=n;i++) {
				if(!mark[i]&&dis[i]<min) {
					min=dis[i];
					loc=i;}
				}
		
			if(loc==0)break//没有点可以加了
			mark[loc]=true;
			count++;
			
			for(int i =1;i<=n;i++) {
				if(!mark[i]&&value[loc][i]!=-1&&(dis[loc]+value[loc][i]<dis[i])) {
					dis[i]=dis[loc]+value[loc][i];
				}
			}
		}
		System.out.println("以"+x+"为起点的最短路径");
			for(int i =1;i<=n;i++) {
				if(dis[i]!=Integer.MAX_VALUE)
					System.out.println(i+"最短路径为"+dis[i]);
				else System.out.println(i+"没有路");
			}
			
	}}
2.问题错误: 找不到或无法加载主类 qwert.M02_Dijkstra,无法运行,百度也看不太懂
部分步骤还没有完全看懂

3.计划明天找老师咨询一下为什么无法运行,并且搞懂全部代码。
原文:https://www.cnblogs.com/pekey/p/11448872.html