package com.xxzzycq.sort;
public class QuickSort
{
public int data[];
private int partition(int sortArray[], int low, int high)
{
int pivot = sortArray[low];
while(low < high)
{
while((low < high)&&(sortArray[high] >= pivot))
{
high--;
}
if((low < high)&&(sortArray[high] < pivot))
{
sortArray[low++] = sortArray[high];
}
while((low < high)&&(sortArray[low] <= pivot))
{
low++;
}
if((low < high)&&(sortArray[low] > pivot))
{
sortArray[high--] = sortArray[low];
}
}
sortArray[low] = pivot;
return low;
}
public void sort(int low, int high)
{
if(low < high)
{
int result = partition(data, low ,high);
sort(low, result - 1);
sort(result + 1, high);
}
}
public void display()
{
for(int i = 0; i < data.length; i++)
{
System.out.print(data[i]);
System.out.print(" ");
}
}
public static void main(String[] args)
{
QuickSort qs = new QuickSort();
int[] data = new int[]{45, 65, 30 , 85, 69, 78,5, 69, 987, 42, 15};
qs.data = data;
qs.sort(0, qs.data.length - 1);
qs.display();
}
}