快速排序

int a[100]={0};
int n;

void quicksort(int left, int right)
{
if(left>=right) return ;
int i=left;
int j=right;
int mid=(left+right)/2;
int p=a[mid];
while(i<=j)
{
while(a[i]<p)
i++;
while(a[j]>p)
j--;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
if(left<j)
quicksort(left,j);
if(i<right)
quicksort(i,right);
}

int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
quicksort(0,n-1);
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}

system("pause");
return 0;

}

使用的是二分法,具体内容可能有一些比较绕的地方,如果看不懂的自己编写两遍就能看懂了。

posted @ 2025-08-03 21:43  暗神酱  阅读(9)  评论(0)    收藏  举报