60分,第3和4项超时,求帮助改一下,问题出在哪里
查看原帖
60分,第3和4项超时,求帮助改一下,问题出在哪里
443027
敞亮人lxy楼主2021/4/9 20:03
#include<stdio.h>

void swap(int *a,int *b)
{
	int temp;
	temp=*a;
	*a=*b;
	*b=temp;
}
void quicksort(int a[],int i,int j)
{
	int tempi=i,tempj=j,temp=a[i];
	if(tempi>tempj)
	return ;
	while(i<j)
	{
		while(i<j&&a[j]>temp)
		j--;
		if(i<j)
		{
			swap(&a[i],&a[j]);
			i++;
		}
		while(i<j&&a[i]<temp)
		{
			i++;
		}
		if(i<j)
		{
			swap(&a[i],&a[j]);
			j--;
		}
	}
	a[i]=temp;
	quicksort(a,tempi,i-1);
	quicksort(a,i+1,tempj);
}
int main()
{
	int i,j,n;
	scanf("%d",&n);
	int a[n];
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	quicksort(a,0,n-1);
	for(i=0;i<n-1;i++)
	{
		printf("%d ",a[i]);
	}
	printf("%d\n",a[n-1]);
	return 0;
}
2021/4/9 20:03
加载中...