package com.bao.sort;
import com.bao.sort.SortUtil.Sort;
public class DSQSort implements Sort
{
@Override
public void sort(int[] data)
{
sort(data, 0, data.length - 1);
}
private void sort(int[] data, int low, int high)
{
if(low < high)
{
int k = partition(data, low, high);
sort(data, low, k - 1);
sort(data, k + 1, high);
}
}
private int partition(int[] data, int low, int high)
{
int t = data[low];
int pivot = data[low];
while(low < high)
{
while(low < high && data[high] >= pivot)
--high;
data[low] = data[high];
while(low < high && data[low] <= pivot)
++low;
data[high] = data[low];
}
data[low] = t;
return low;
}
}