zoukankan      html  css  js  c++  java
  • 第三周星期一

    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.计划明天找老师咨询一下为什么无法运行,并且搞懂全部代码。

  • 相关阅读:
    14.6 将运算分组为事务
    Android 取得 ListView中每个Item项目的值
    【编程题目】n 个骰子的点数
    【编程题目】扑克牌的顺子
    【编程题目】颠倒栈☆
    【编程题目】输出 1 到最大的 N 位数
    【编程题目】寻找丑数
    【编程题目】在字符串中删除特定的字符
    【编程题目】复杂链表的复制☆
    【编程题目】找出数组中两个只出现一次的数字 ★★(自己没做出来)
  • 原文地址:https://www.cnblogs.com/pekey/p/11448872.html
Copyright © 2011-2022 走看看