#include<iostream>
#include<algorithm>
using namespace std;
int a[100010],n;
void quicksort(int l,int r)
{
int i=l,j=r;
int x=(l+r)>>1;
do
{
while(a[i]<a[x])
i++;
while(a[j]>a[x])
j--;
if (i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
while(i<=j);
if (j>l) quicksort(l,j);
if (i<r) quicksort(i,r);
}
int main()
{
freopen("1.in","r",stdin);
freopen("2.out","w",stdout);
cin>>n;
for (int i=1;i<=n;i++)
cin>>a[i];
quicksort(1,n);
for (int i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
#include<iostream>
#include<algorithm>
using namespace std;
int a[100010],n;
void quicksort(int l,int r)
{
int i=l,j=r;
int zz=a[(l+r)/2];
do
{
while(a[i]<zz)
i++;
while(a[j]>zz)
j--;
if (i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
while(i<=j);
if (j>l) quicksort(l,j);
if (i<r) quicksort(i,r);
}
int main()
{
cin>>n;
for (int i=1;i<=n;i++)
cin>>a[i];
quicksort(1,n);
for (int i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
第一份代码是错的,第二份代码是对的; 请问两者有什么区别;错误在哪里 这里有一份数据参考 4 8645 9065 6982 372