class MainQuickSort {
public static void main(String[] args) {
int[] a = {15,56,1, 21, 5,16,2,69,5,498,6,1515,45,561,23,16,65,21,2};
quickSort(a,0,a.length-1);
for(int num:a){
System.out.print(num + ",");
}
}
private static void quickSort(int[] intArr,int begin,int end){
if(begin==end){
return;
}
boolean rightBegin = true ;
int spitIndex = begin ;
int left = begin;
int right = end ;
while(left<right){
if(rightBegin){
while(left<right && intArr[left]<=intArr[right]){
right --;
}
if(left<right && intArr[left]>intArr[right]){
rightBegin = false ;
swap(intArr,left,right);
spitIndex=right;
}
}
if(!rightBegin){
while(left<right && intArr[left]<=intArr[right]){
left++;
}
if(left<right && intArr[left]>intArr[right]){
rightBegin=true;
swap(intArr,left,right);
spitIndex=left;
}
}
}
for(int a:intArr){
}
quickSort(intArr,begin,spitIndex);
quickSort(intArr,spitIndex+1,end);
}
private static void swap(int[] intArr,int left,int right){
int temp = intArr[left];
intArr[left] = intArr[right];
intArr[right]= temp;
}
}