用分治法实现快速排序算法出现的问题
1.以数组中第一个数作为基准值
正确代码
```c
#include <stdio.h>
void Swap(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
void QuickSort(int a[],int s,int e)
{
int l=s;
int r=e;
int k=l;
//if(s>e) return ;
if(s<e){
while(l<r){
// while(a[r]>=a[k]) r--;
// while(a[l]<=a[k]) l++;
while(l<r&&a[r]>=a[k]) r--;
while(l<r&&a[l]<=a[k]) l++;
Swap(&a[l],&a[r]);
}
Swap(&a[k], &a[r]);
QuickSort(a,s,r-1);
QuickSort(a,r+1,e);
}
}
int main(){
int n,a[100000],k;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int s=0;
QuickSort(a,s,n-1);
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
我的问题:如果将
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/faba9e06f5a24528a99307ee55d739be.png "#left")