View Code of Problem 75

// 排序.cpp : 定义控制台应用程序的入口点。
//

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void qsort1(int a[],int n)
{
	int first=0,last=n-1;
	qsort2(a,first,last);
}
void qsort2(int a[],int first,int last)
{
	int tmp=first,temp=a[first],i=first,j=last,flag=0;
	while(i<j)
	{
		if(flag==0)
		{
			if(a[j]<temp)
			{
				a[tmp]=a[j];
				tmp=j;
				flag=1;
			}
			else
				j--;
		}
		else
		{
			if(a[i]>temp)
			{
				a[tmp]=a[i];
				tmp=i;
				flag=0;
			}
			else
				i++;
		}
	}
	a[tmp]=temp;
	if(first<tmp-1)
	qsort2(a,first,tmp-1);
	if(tmp+1<last)
	qsort2(a,tmp+1,last);
	
}
int main()
{
	int a[20],i;
	for(i=0;i<10;i++)
		scanf("%d",&a[i]);
	qsort1(a,10);
	for(i=0;i<10;i++)
		printf("%d\n",a[i]);
	return 0;
}

Double click to view unformatted code.


Back to problem 75