快速排序的中心思想就是:选取一个数作为基准,使该数左面的数比该数小,右面的数字大于该数。然后使用递归完成循环过程。
int Part(
int *arr,
int low,
int high)
{
int pivotloc = arr[low];
while (low < high)
{
while (low < high&&arr[high] >= pivotloc)
high--;
swap(arr[low],arr[high]);
while (low < high&&arr[low] <= pivotloc)
low++;
swap(arr[low], arr[high]);
}
return low;
}
void QSort(
int *arr,
int low,
int high)
{
int p;
if (low < high)
{
p = Part(arr,low,high);
QSort(arr,low,p-
1);
QSort(arr,p+
1,high);
}
}
转载请注明原文地址: https://ju.6miu.com/read-35973.html