本文主要是介绍19.寻找第K大值 (15分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目内容:
在一个整数数组中,寻找第k大值所在位置。假设每个数值都不一样。要求算法时间复杂性通常情况下为线性。
输入描述
包括一个数组长度n,一个k, 以及紧接着的n个整数值。整数之间用空格隔开。
输出描述
第k大值所在位置编号。规定数组的第一个位置编号为0.
输入样例
7 3 1 4 3 9 8 7 2
输出样例
5
#include <stdio.h>
int main(){int n,k;scanf("%d%d",&n,&k);int *a=new int[n],*b=new int[n];int i,j,max,p;for(i=0;i<n;i++){scanf("%d",&a[i]);b[i]=0;}for(i=1;i<=k;i++){max = 0;for(j=0;j<n;j++){if(max<a[j]&&b[j]==0){max=a[j];p=j;}}b[p]=1;}printf("%d",p);return 0;
}
这篇关于19.寻找第K大值 (15分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!