//{6,1,2,7,9,3,4,5,10,11,8} QuickSort(arr,0,arr.Length-1)
public void QuickSort(int[] arr, int low, int high)
{
if (low >= high)
{
return;
}
int i, j, index,temp;
i = low;
j = high;
index = arr[low];
while (i < j)
{
while (arr[j] >= index && j > i) //从右往左找出比基数小的数
j--;
while (arr[i] <= index && j > i) //从左往右找出比基数大的数
i++;
//交换找出的两个数
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//重置基数
temp = arr[i];
arr[i] = arr[low];
arr[low] = temp;
//分别对左右子数组递归
QuickSort(arr, low, i - 1);
QuickSort(arr, i + 1, high);
}
public void QuickSort(int[] arr, int low, int high)
{
if (low >= high)
{
return;
}
int i, j, index,temp;
i = low;
j = high;
index = arr[low];
while (i < j)
{
while (arr[j] >= index && j > i) //从右往左找出比基数小的数
j--;
while (arr[i] <= index && j > i) //从左往右找出比基数大的数
i++;
//交换找出的两个数
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//重置基数
temp = arr[i];
arr[i] = arr[low];
arr[low] = temp;
//分别对左右子数组递归
QuickSort(arr, low, i - 1);
QuickSort(arr, i + 1, high);
}