求助 用快排最后三个点超时
查看原帖
求助 用快排最后三个点超时
451506
Hcell楼主2021/8/12 18:26

代码如下

#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
void quicksort(int *arr,int begin,int end)
{
	if(begin<end)
	{
		int temp=arr[end];
		int i=begin;
		int j=end;
		while(i<j)
		{
			while(i<j&&arr[i]<temp)
			i++;
			arr[j]=arr[i];
			while(i<j&&arr[j]>=temp)
			j--;
			arr[i]=arr[j];
		}
		arr[i]=temp;
		quicksort(arr,begin,i-1);
		quicksort(arr,i+1,end);
	}
	else return;
}
int n[100009];
int main()
{  
  int N;
  cin>>N;
  for(int i=0;i<N;i++)
  cin>>n[i];
  quicksort(n,0,N-1);
   for(int i=0;i<N-1;i++)
  cout<<n[i]<<" ";
  cout<<n[N-1]<<endl;
  
}
2021/8/12 18:26
加载中...