一道水题,是用刚学的快速排序做的,代码如下:
#include<stdio.h>
int qkpass(int a[],int left,int right)
{
int key,low,high;
low=left;
high=right;
key=a[low];
while(low<high)
{
while(low<high&&a[high]>=key)
high--;
if(low<high)
{
a[low]=a[high];
low++;
}
while(low<high&&a[low]<=key)
low++;
if(low<high)
{
a[high]=a[low];
high--;
}
}
a[low]=key;
return low;
}
void qksort(int a[],int low,int high)
{
int pos;
if(low<high)
{
pos=qkpass(a,low,high);
qksort(a,low,pos-1);
qksort(a,pos+1,high);
}
}
int main()
{
int i,n,a[10000];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
qksort(a,0,n-1);
printf("%d",a[(n-1)/2]);
return 0;
}