找出第k大的数
Description
用户输入N和K(K<N),然后接着输入N个正整数(无序的),程序在不对N个整数排序的情况下,找出第K大的数。注意,第K大的数意味着从大到小排在第K位的数。
Input
N
K
a1 a2 a3 a4 … aN
Output
b
Sample Input 1
5
2
32 3 12 5 89
Sample Output 1
32
Source
none
代码如下:
#include<stdio.h>
int main()
{
int n,k,a[1000],j,temp;
scanf("%d",&n);
scanf("%d",&k);
for (int i = 0;i <n;i ++)
scanf("%d",&a[i]);
for (int i = 0;i <n;i ++)
for (int j = 0;j<i;j ++)
if (a[j]>a[i])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
printf("%d\n",a[n-k]);
return 0;
}
示例:
检验如下: