Advertisement
Lusien_Lashans

Dijkstra main

May 2nd, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. package com.company;
  2. import java.util.Scanner;
  3. import java.util.*;
  4. import java.io.*;
  5.  
  6. public class Main {
  7.     public static int z,size;
  8.     static final int arr[][] = {
  9.             {0, 1, 4, 0, 2, 0},
  10.             {0, 0, 0, 9, 0, 0},
  11.             {4, 0, 0, 7, 0, 0},
  12.             {0, 9, 7, 0, 0, 2},
  13.             {0, 0, 0, 0, 0, 8},
  14.             {0, 0, 0, 0, 0, 0}};
  15.  
  16.     public static void main(String[] args) {
  17.         long timeout= System.currentTimeMillis();
  18.         //ReadFile();
  19.         int n = arr.length;
  20.         Graph g = new Graph(n);
  21.         for (int i = 0; i < n; i++) {
  22.             for (int j = 0; j < n; j++) {
  23.                 if (arr[i][j] != 0) {
  24.                     g.addEdge(i, j, arr[i][j]);
  25.  
  26.                 }
  27.             }
  28.         }
  29.         long[] path = new long[g.n];
  30.         int[] pred = new int[g.n];
  31.         Dijkstra help = new Dijkstra();
  32.         help.dijkstra(g, 0, path, pred);
  33.  
  34.         z = help.getZ();
  35.         size = help.getSize();
  36.         //dijkstra(g, 0, path, pred);
  37.         System.out.println("Длина кратчайшего пути в графе: "+path[z]);
  38.         printPath(pred, z); // вызов пути
  39.         System.gc();
  40.         timeout = System.currentTimeMillis() - timeout;
  41.         System.out.println("\nВремя выполнения " + timeout + " мс" );
  42.     }
  43.  
  44.     //сам путь
  45.     public static void printPath(int[] map, int point) {
  46.         StringBuilder result = new StringBuilder();
  47.         while (true) {
  48.             result.insert(0, point);
  49.             point = map[point];
  50.             if (point < 0) {
  51.                 break;
  52.             }
  53.             result.insert(0, ">");
  54.         }
  55.         System.out.print(result);
  56.     }
  57.     public static final long INF = Long.MAX_VALUE / 10;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement