Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. class Algo {
  2. static int size = 7;
  3. static int maxint = Integer.MAX_VALUE;
  4. public static int[] t = {1,9,9,2,1,1,0};
  5.  
  6. public static int[][] delta = new int[size][size];
  7. public static int[][] poids = new int[size][size];
  8.  
  9. public static void poids(){
  10. for(int i = 0; i < size; i++)
  11. for(int j = 0; j < size; j++)
  12. delta[i][j] = maxint;
  13.  
  14. for(int i = 0; i < size; i++)
  15. for(int j = i; j < size; j++)
  16. for(int k = i; k < j; k++)
  17. poids [i][j] += t[k];
  18.  
  19. }
  20.  
  21. public static int min(int i, int j){
  22. int n = maxint;
  23. for(int k = i; k < j; k++)
  24. n = Math.min (poids[i][k] + poids[k+1][j] + desequilibre(i,k) + desequilibre(k+1, j), n);
  25. return n;
  26. }
  27.  
  28. public static int desequilibre(int i, int j){
  29. if (delta[i][j] != maxint)
  30. return delta[i][j];
  31. else
  32. if (i>j)
  33. return maxint;
  34. else if (i == j)
  35. return (delta[i][j] = 0);
  36. else
  37. return (delta[i][j] = min(i,j));
  38. }
  39.  
  40. public static String complete(int i){
  41. String s = i + " ";
  42. if(i<10)
  43. s = " " + s;
  44. return s;
  45. }
  46.  
  47. public static void affiche(int[][] t){
  48. for(int i = 0; i < size; i++){
  49. for(int j = 0; j < size; j++){
  50. if(i>j)
  51. System.out.print("__ ");
  52. else
  53. System.out.print(complete(t[i][j]));
  54. }
  55. System.out.println("");
  56. }
  57. }
  58.  
  59. public static void main (String[] args){
  60. poids();
  61. desequilibre(0,size-1);
  62. affiche(delta);
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement