`
小羊fc
  • 浏览: 88743 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

    博客分类:
  • C++
 
阅读更多

查找数组中第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-->
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics