快排40分,三四五测试点都超了,望大佬指出!
查看原帖
快排40分,三四五测试点都超了,望大佬指出!
1205471
119186303f楼主2023/11/20 22:42
#include<stdio.h>
#include<stdlib.h>

//快速排序
void quicksort(int a[],int Mleft,int Mright){
	if(Mleft>Mright)	return;
	int temp;//基准数
	temp =a[Mleft];
	int left=Mleft,right=Mright;
	int t;//中间变量 
	while(left!=right){
	while(right>left&&a[right]>=temp)	right-- ;
	while(left<right&&a[left]<=temp)	left++ ;
	t=a[left];
	a[left]=a[right];
	a[right]=t;
	}
	a[Mleft]=a[left];
	a[left]=temp;
	quicksort(a,Mleft,left-1);
	quicksort(a,left+1,Mright);
	return ;
}

int main(){
	int N;
	scanf("%d",&N);
	//创建动态数组存储数据 
	int *arry=(int*)malloc(sizeof(int)*N);
	int i;
	for(i=0;i<N;i++){
		scanf("%d",&arry[i]);
	}
	//快速排序 
	quicksort(arry,0,N-1);
	for(i=0;i<N;i++){
		printf("%d ",arry[i]);
	}
	return 0;
}
2023/11/20 22:42
加载中...