读书人

查寻数组中第k大的数的位置

发布时间: 2012-08-26 16:48:06 作者: rapoo

查找数组中第k大的数的位置

查找数组中第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-->

读书人网 >编程

热点推荐