Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. public double[] prim(Graph G, Node u) {
  2. final double[] store = new double[numberOfVertices];
  3. final double[] minWeight = new double[numberOfVertices];
  4. final boolean[] visited = new boolean[numberOfVertices];
  5.  
  6. // set all values in store to the largest value (infinity)
  7. for (int i = 0; i < store.length; i++) {
  8. store[i] = Integer.MAX_VALUE;
  9. }
  10.  
  11. // set boolean values in visited as false
  12. for (int i = 0; i < visited.length; i++) {
  13. visited[i] = false;
  14. }
  15.  
  16.  
  17. //store[start] = 0;
  18. // just in case put "int start" into the paramater
  19. // if you want to start at a specific place
  20.  
  21. minWeight[0] = 0;
  22.  
  23. for (int i = 0; i < numberOfVertices - 1; i++) {
  24.  
  25. int next = minVertex(store, visited);
  26. visited[next] = true;
  27.  
  28. for (int j = 0; j < numberOfVertices; j++) {
  29.  
  30. if (weightHolder[next][j] != 0 && visited[j] == false
  31. && weightHolder[next][j] < store[j]) {
  32. minWeight[j] = next;
  33. store[j] = weightHolder[next][j];
  34. }
  35. }
  36. }
  37. System.out.println(store);
  38. return store;
  39. }
  40.  
  41. private static int minVertex(double[] store, boolean[] v) {
  42. double x = Double.MAX_VALUE;
  43. int y = -1;
  44. for (int i = 0; i < store.length; i++) {
  45. if (!v[i] && store[i] < x) {
  46. y = i;
  47. x = store[i];
  48. }
  49. }
  50.  
  51. return y;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement