决定再做一次快排
【参考代码】
#include <iostream>
using namespace std;
void quicksort(int a[], int l, int h)
{
if(l >= h)
return;
int low = l, high = h;
int temp = a[low];
while(low < high) //防越界
{
while(low < high && a[high] >= temp)
high--;
if(low < high && a[high] <= temp)
a[low] = a[high];
while(low < high && a[low] <= temp)
low++;
if(low < high && a[low] >= temp)
a[high] = a[low];
}
if(low >= high)
a[low] = temp;
quicksort(a, l, low - 1);
quicksort(a, low + 1, h);
}
int main()
{
// 请在此输入您的代码
int n;
cin >> n;
int a[100];
for(int i=0; i<n; i++)
{
cin >> a[i];
}
quicksort(a, 0, n-1);
for(int i=0; i<n; i++)
{
cout << a[i] << " ";
}
return 0;
}
提问:为什么还要加一层while(low < high),不加会怎么样?
在评论区留下你的看法😁