查找数组中第k大的数的位置
代码:
<!--StartFragment-->#include <iostream>
using namespace std;
int find_orderk(int* narry,const int n,const int k)
{
if(k>n) {
return -1;
}
int max = *narry;
int min = *narry;
int position = 0;
int i = 1;
while(i < n) {
int number = narry[i];
if(max < number)
{
max = number;
position = i;
}
if(min > number){
min = number;
}
i++;
}
if(k!= 1) {
narry[position] = min - 1;
int new_k = k - 1 ;
return find_orderk(narry,n,new_k);
}else {
return position;
}
}
int main()
{
int n [] = {8,10,1,2,3,4,7,5};
int position = find_orderk(n,8,4);
cout << position << endl;
return 0;
}<!--EndFragment-->