求助,麻烦各位大佬帮忙看看为什么只有40分,谢谢谢谢
查看原帖
求助,麻烦各位大佬帮忙看看为什么只有40分,谢谢谢谢
324176
yuyuyuyu12345楼主2022/9/5 17:48
#include<iostream>
using namespace std;
int a[2000000],n,m;
void swap(int &a,int &b){
	int temp=a;
	a=b;
	b=temp;
} 
void quicksort(int a[],int begin,int end)
{
	if(begin>=end) return;
	int left=begin;
	int right=end;
	int key=begin;
	while(end>begin)
	{
		while(a[end]>=a[key]&&end>begin) end--;//右边选小
		while(a[begin]<=a[key]&&end>begin) begin++;//左边选大 
		
		swap(a[end],a[begin]); 
	}
	swap(a[end],a[key]);
	key=end;
	quicksort(a,left,key-1);
	quicksort(a,key+1,right);
}
int main()
{
	cin>>n;
	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]<<" ";
}
2022/9/5 17:48
加载中...