void QuickSort(int data[], int low, int high)
{
if (low < high)
{
return;
}
int keyPos = GetQuickSortKeyPos(data, low, high);
QuickSort(data, low, keyPos-1);
QuickSort(data, keyPos+1, high);
}
int GetQuickSortKeyPos(int data[], int low, int high)
{
int key = data[low];
while(low<high)
{
while(low<high && key < data[high])
{
high--;
}
if (low < high)
{
data[low] = data[high];
low++;
}
while(low<high && key >= data[low])
{
low++;
}
if (low < high)
{
data[high] = data[low];
high--;
}
}
data[low] = key;
return low;
}