程序代码:找出数组的第k小。找第k大也类似。
void search_c(int a[],int k)
{
int low,high,i,j,m,t;
k--;
low=0;
high=n-1;
do{
i=low;j=high;t=a[low];
do{
while(i<j&&t<a[j])j--;
if(i<j)a[i++]=a[j];
while(i<j&&t>=a[i])i++;
if(i<j)a[j--]=a[i];
}while(i<j);
a[i]=t;
if(i==k)
break;
if(i<k)
low=i+1;
else
high=i-1;
}while(low<high);
printf("%d\n",a[low]);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。