60分c 快排 捞一捞
查看原帖
60分c 快排 捞一捞
1062913
Sezen楼主2023/10/12 11:19
#include<stdio.h>
void quicksort(int num[],int begin,int end);
int a[2000001]={0};
int main()
{
	int m,n;
	scanf("%d%d",&n,&m);
	for(int i=0;i<m;i++)
	{
		scanf("%d",&a[i]);
	}
	quicksort(a,0,m-1);
	for(int j=0;j<m;j++)
	{
		printf("%d ",a[j]);
	}
	return 0;
}
void quicksort(int num[],int begin,int end)
{
	int left=begin,right=end,tmp=num[begin];
	if(left>right)
	{
		return;
	}
	int temp;
	while(left<right)
	{
		while(num[right]>=tmp && left<right)
		{
			right--;
		}
		while(num[left]<=tmp && left<right) 
		{
			left++;
		}
		if(left<right)
		{
			temp=num[left];
			num[left]=num[right];
			num[right]=temp;
		}
	}
	num[begin]=num[left];
	num[left]=tmp;
	quicksort(num,left+1,end);
	quicksort(num,begin,left-1);
}
2023/10/12 11:19
加载中...