题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=2
C语言源码:
#include<stdio.h>
void quicksort(int a[],int low,int high)
{
int key,i,j;
i=low;
j=high;
key=a[low];
while(i<j)
{
while(i<j&&a[j]>=key)
j--;
*(a+i)=*(a+j);
while(i<j&&a[i]<=key)
i++;
*(a+j)=*(a+i);
}
*(a+i)=key;
if(i-low>1)
quicksort(a,low,i-1);
if(high-i>1)
quicksort(a,i+1,high);
}
int main()
{
int a[1000],n,i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
quicksort(a,0,n-1);
printf("%d\n",a[n-1]);
if(n==1)
printf("-1\n");
else
{
i=0;
while(i<n-2)
printf("%d ",a[i++]);
printf("%d\n",a[i]);
}
}
}