zoukankan      html  css  js  c++  java
  • 寻找第K大的数

    题目描述
    要求在N个不重复的整数中,找出第K大的整数 ,其中0<K<N<1000000
    输入
    输入第一行为两个正整数N K
    第二行为N个整数,输入保证这N个整数两两相异,每个整数的范围在-1000000到1000000之间
    输出
    输出第K大的整数值
    样例输入
    5 3
    3 2 4 5 1
    样例输出
    3

    代码如下:

     1 #include<iostream>
     2 #include<math.h>
     3 #include<string.h>
     4 #include<stdio.h>
     5 using namespace std;
     6   
     7 int arr[1000000];
     8    
     9 int devide(int begin,int end)
    10 {
    11     int key=arr[begin];
    12     int low=begin;
    13     int high=end;
    14     while(low<high)
    15     {
    16         while(low<high && arr[high]>=key)
    17            high--;
    18         arr[low]=arr[high];
    19         while(low<high && arr[low]<=key)
    20           low++;
    21         arr[high]=arr[low];
    22     }
    23     arr[low]=key;
    24     return low;
    25 }
    26    
    27 int Find(int begin,int end,int k)
    28 {
    29     int index=devide(begin,end);
    30     if(index==end-k+1)
    31       return index;
    32     else if(index<end-k+1)
    33       return Find(index+1,end,k);
    34     else if(index>end-k+1)
    35       return Find(begin,index-1,index-(end-k+1));
    36 //  return Find(begin,index,k-1);
    37 }
    38 
    39 int main()
    40 {
    41     int n,k;
    42     cin>>n>>k;
    43     memset(arr,0,sizeof(arr));
    44     for(int i=0;i<n;i++)
    45       cin>>arr[i];
    46     int index=Find(0,n,k);
    47     cout<<arr[index]<<endl;
    48 }
  • 相关阅读:
    jquery.tmpl.js 模板引擎用法
    var 的使用
    BUG集锦
    jquery Ajax异步请求之session
    找到多个与名为“Login”的控制器匹配的类型
    蒙板 模态对话框
    mvc通过ActionFilterAttribute做登录检查
    MVC 分页
    MVC 创建线程内的db单例
    Servlet生命周期中的service方法分析
  • 原文地址:https://www.cnblogs.com/baigg1995/p/4583394.html
Copyright © 2011-2022 走看看