package com.study.arithmetic;
public class QuickSort {
public void quickSort(int[] array, int p, int r) {
if( p < r) {
int q = partation(array, p, r);
quickSort(array, p, q-1);
quickSort(array, q+1, r);
}
}
public int partation(int[] array, int p, int r) {
int x = array[r];
int i = p - 1;
for(int j = p; j < r; j++) {
if(array[j] <= x) {
i++;
swap(array, i, j);
}
}
swap(array, i+1, r);
return i + 1;
}
private void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
public static void main(String[] args) {
QuickSort qs = new QuickSort();
int[] array = new int[]{4,1,3,2,16,9,10,14,8,7};
qs.quickSort(array, 0, array.length-1);
for(int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}