快速排序--C

快速排序,

输入格式:

          第一行为一个整数N<100 第二行包括N个用空格分开的未排序的数且保证每个数≤10000。

输出格式:

          将给定的N个数从小到大输出,数之间空格隔开。

代码:

#include<stdio.h>
void swap(int *a,int *b)
{
	int temp;
	
	temp = *a;
	*a = *b;
	*b = temp;
	return; 
 } 
 void quicksort(int array[],int maxlen,int begin,int end){
 	int i,j;
 	if(begin<end)
 	{
 		i=begin + 1;
 		j=end;
 		
 		while(i<j){
 			if(array[i]>array[begin]){
 				swap(&array[i],&array[j]);
 				j--;
			 }
			 else{
			 	i++;
			 }
		 }
		 if((array[i]>=array[begin])){
		 	i--;
		 }
		 swap(&array[begin],&array[i]);
		 quicksort(array,maxlen,begin,i);
		 quicksort(array,maxlen,j,end);
	 }	
 }
 int main(){
	int a[100],n,left,right;
	
	scanf("%d\n",&n);
	for(int k=0;k<n;k++){
		scanf("%d",&a[k]);
	}
	quicksort(a,n,0,n-1);
	

	for(int k=0;k<n;k++){
		printf("%d ",a[k]);
	}
	return 0;		
}
发布了34 篇原创文章 · 获赞 6 · 访问量 4775

猜你喜欢

转载自blog.csdn.net/qq_42712280/article/details/100603679