问题描述:
找出N个数字中第K大的数
解决思路:
1、将输入的N个数递减排序,array[k-1]即第K大的数
2、将输入的K个数递减排序,之后输入的数与前k个数进行比较,若接着输入的数大于前K个数,交换并剔出多余的数
3、未完待续
算法实现:
方法一:
#include<stdio.h>
void findBigK(int *array);
void sort(int *array);
int n;
int main() {
while(scanf("%d",&n)!=EOF){
int a[n],i;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
findBigK(a);
}
}
void findBigK(int *array) {
sort(array);
pr