Advertisement
PtiTom

DD-Défi

Mar 26th, 2012 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1. package ceri.tests.cours3;
  2.  
  3. public class AnalyseMe {
  4.  
  5.     private int[] numbers;
  6.     /**
  7.      * @param args
  8.      */
  9.     public static void main(final String[] args) {
  10.         try{
  11.             long timeTrace = System.currentTimeMillis();
  12.             System.out.println("Time (ms) : " + (System.currentTimeMillis() - timeTrace));
  13.  
  14.             final AnalyseMe objToTest = new AnalyseMe();
  15.             objToTest.addNumber(35);
  16.             objToTest.addNumber(18);
  17.             objToTest.addNumber(1);
  18.             objToTest.addNumber(43);
  19.             objToTest.addNumber(29);
  20.             objToTest.addNumber(-4);
  21.            
  22.             for (int numberIndex = 0 ; numberIndex < 100000 ; numberIndex++) {
  23.                 objToTest.addNumber(((int)(Math.random() * 10000)) - 5000);
  24.             }
  25.             System.out.println("Time (ms) : " + (System.currentTimeMillis() - timeTrace));
  26.            
  27.             //GESTION DES LOGS
  28.             System.out.println("Etat de la pile : " + objToTest.displayNumbers());
  29.             System.out.println("Time (ms) : " + (System.currentTimeMillis() - timeTrace));
  30.  
  31.             objToTest.sortNumbers();
  32.             System.out.println("Time (ms) : " + (System.currentTimeMillis() - timeTrace));
  33.            
  34.             System.out.println("Etat de la pile : " + objToTest.displayNumbers());
  35.         }
  36.         catch (Exception e) {
  37.             System.out.println(e.getMessage());
  38.         }
  39.     }
  40.  
  41.     public AnalyseMe()
  42.     {
  43.         numbers = new int[0];
  44.     }
  45.  
  46.     public int addNumber(final int number)
  47.     {
  48.         final int[] oldNumbers = numbers;
  49.         numbers = new int[oldNumbers.length + 1];
  50.         System.arraycopy(oldNumbers, 0, numbers, 0, oldNumbers.length );
  51.  
  52.         numbers[oldNumbers.length] = number;
  53.  
  54.         return numbers.length;
  55.     }
  56.  
  57.     public void sortNumbers()
  58.     {
  59.         try{
  60.             boolean hasMoved = true;
  61.  
  62.             int moveCount = 0;
  63.  
  64.             while (hasMoved)
  65.             {
  66.                 int temp ;
  67.                 hasMoved = false;
  68.                 for (int i = 0 ; i < numbers.length - 1 ; i++)
  69.                 {
  70.                     if (numbers[i + 1] < numbers[i]) {
  71.                         temp = numbers[i];
  72.                         numbers[i] = numbers[i+1];
  73.                         numbers[i+1] = temp;
  74.                         moveCount++;
  75.                         hasMoved = true;
  76.                     }
  77.                 }
  78.             }
  79.  
  80.             System.out.println("tri effectué en "+moveCount+" mouvements.");
  81.         }
  82.         catch (Exception e) {
  83.             System.out.println(e.getMessage());
  84.         }
  85.     }
  86.  
  87.     public String displayNumbers()
  88.     {
  89.         final StringBuffer output = new StringBuffer();
  90.         output.append('[');
  91.         for (int i = 0 ; i < numbers.length ; i++)
  92.         {
  93.             output.append(((i == 0) ? "" : ", ") + numbers[i]);
  94.             if (i > 5000)
  95.             {
  96.                 break;
  97.             }
  98.         }
  99.         output.append(']');
  100.         return output.toString();
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement