static public void QuickSort(int[] dataArray, int left, int right)
{//快速排序
if(left<right){
int x = dataArray[left];//挖出一个坑
int i = left;
int j = right;
while (i < j)//疯狂换坑
{
while (i < j && dataArray[j] >= x)j--;//后标记前移
dataArray[i] = dataArray[j];//填坑挖坑
while (i < j && dataArray[i] <= x)i++;//前标记后移
dataArray[j] = dataArray[i];//填坑挖坑
}
dataArray[i] = x;//填上最后的坑(找到中心)
QuickSort(dataArray, left, i - 1);//分段递归
QuickSort(dataArray, i + 1, right);//分段递归
}
}
//调用
int[] data = new int[] { 42,20,40,23,12,120,13};
QuickSort (data,0,data.Length-1);//-1防止下标越界