Advertisement
urksiful

QuickSort ArrayList

Nov 20th, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.72 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3.  
  4. public class QuickSort {
  5.      
  6.     ArrayList<Integer>  array;
  7.     int leng;
  8.     int mov = 0, comp = 0;
  9.    
  10.     public static void main(String a[]){
  11.         ArrayList<Integer> arreglo = new ArrayList<Integer>();
  12.         QuickSort p1 = new QuickSort();
  13.         System.out.println("Desordenado ");
  14.         for(int i=0; i<100; i++){
  15.             arreglo.add((int)(Math.random()*200));
  16.             System.out.print(arreglo.get(i)+" ");
  17.            
  18.         }
  19.         System.out.println();
  20.        
  21.         p1.array = arreglo;
  22.         p1.leng = arreglo.size();
  23.         p1.quickSort(0, p1.leng - 1);
  24.         System.out.println("Ordenado ");
  25.         for(int i=0; i<100; i++){
  26.             System.out.print(arreglo.get(i)+" ");
  27.            
  28.         }
  29.         System.out.println("\nComparaciones: "+p1.comp+"\nMovimientos: "+p1.mov);
  30.  
  31.  
  32.     }
  33.  
  34.  
  35.     private void quickSort(int lowerI, int upperI) {
  36.          
  37.         int i = lowerI;
  38.         int j = upperI;
  39.        
  40.         int pivote = array.get(lowerI+(upperI-lowerI)/2);
  41.  
  42.         while (i <= j) {
  43.  
  44.             while (array.get(i) < pivote) {
  45.                 i++;
  46.                 comp++;
  47.             }
  48.             while (array.get(j) > pivote) {
  49.                 j--;
  50.                 comp++;
  51.             }
  52.             if (i <= j) {
  53.                 interNumbers(i, j);
  54.  
  55.                 i++;
  56.                 j--;
  57.             }
  58.         }
  59.  
  60.         if (lowerI < j)
  61.             quickSort(lowerI, j);
  62.         if (i < upperI)
  63.             quickSort(i, upperI);
  64.     }
  65.  
  66.     public void interNumbers(int i, int j) {
  67.         int temp = array.get(i);
  68.         array.set(i, array.get(j));
  69.         array.set(j, temp);
  70.         mov++;
  71.     }
  72.      
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement