Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. public class Array{
  2.  
  3.     public static void quicksort(int []list){
  4.         sort(list,0,list.length-1);
  5.     }
  6.  
  7.     public static void sort(int []list,int low,int high){
  8.     int pivot=low;
  9.         int left=low;
  10.         int right=high;
  11.    
  12.         while(left<right){
  13.             while(list[left]<list[pivot]&&left<right){//find left value bigger than pivot and left < right
  14.                 left++;
  15.             }            
  16.             exchange(list,left,pivot);//swap left value and pivot
  17.             pivot=left;
  18.             while(list[pivot]<list[right]&&left<right){//find right value smaller than pivot and left < right
  19.                 right--;
  20.             }
  21.             exchange(list,right,pivot);//swap right value and pivot
  22.             pivot=right;
  23.         }
  24.         if(left<high){//recusion for left side
  25.             sort(list,left+1,high);
  26.         }
  27.         if(right>low){//recusion for right side
  28.             sort(list,low,right-1);
  29.         }
  30.  
  31.     }
  32.  
  33.     public static  void exchange(int []list,int i, int j){
  34.         int temp=list[i];
  35.         list[i]=list[j];
  36.         list[j]=temp;
  37.     }
  38. }