void Quicksort16(int arr[], int L, int R)
{
if (L >= R)
{
return;
}
int left = L, right = R;
int pivot = arr[left];
while (left < right)//大前提
{
//先移动右指针
while (left < right && arr[right]>=pivot)
{
right--;
}
if (left < right)
{
//让其放入应该放入的arr[left]之中
arr[left] = arr[right];
left++;//移动下标让其进入下一个数字带命(其实写不写都行)
}
//先移动左指针
while (left < right && arr[left]<=pivot)
{
left++;
}
if (left < right)
{
//让其放入应该放入的arr[right]之中
arr[right] = arr[left];
right--;//移动下标让其进入下一个数字带命(其实写不写都行)
}
if (left >= right)//最后两下标称重合 将标志值赋值即可
{
arr[left] = pivot;
}
}
//重复
Quicksort16(arr, L, right - 1);//左子序列
Quicksort16(arr, right + 1, R); //右子序列
}