参考:http://blog.csdn.net/hackbuteer1/article/details/6651804

#include<iostream>
using namespace std;
bool Inputvalid=true;
void swap(int *num1,int* num2)
{
int temp=*num1;
*num1=*num2;
*num2=temp;
}
bool checkInvalidarray(int* num,int length,int k)//第k大的数 
{
if(num==NULL||length<=0||k>length)
Inputvalid=false;
return Inputvalid;
}
int partition(int* num,int length,int start,int end)
{
int flag=num[end];//参考位
if(num==NULL||length<=0||start<0||end>=length)
throw new std::exception("Invalid Parameters");
int pahead=start-1;
for(int i=start;i<end;++i)
{
if(num[i]<flag)
{
pahead++;
if(pahead!=i)
swap(&num[pahead],&num[i]);
}
}
++pahead;
swap(&num[pahead],&num[end]);
return pahead;
}
int FindKthNumber(int *num,int length,int k)
{
if(!checkInvalidarray(num,length,k))
return 0;
int index=partition(num,length,0,length-1);
int findindex=length-k;
while(index!=findindex)
{
if(index>findindex)
index=partition(num,length,0,index-1);
else
index=partition(num,length,index+1,length-1);
}
int result=num[index];
return result;
}
int main()
{
int num[]={1,10,7,3,2,9,5,4,8,6};
int KthNumber=FindKthNumber(num,10,5);
if(Inputvalid)
cout<<KthNumber<<endl;
else
cout<<"不合理输入"<<endl;
return 0;
}

C++实现数组中求第K大数相关推荐

  1. c++求区间第k大数_数组中求第K大数的实现方法

    问题:有一个大小为n的数组A[0,1,2,-,n-1],求其中第k大的数. 该问题是一个经典的问题,在<算法导论>中被作为单独的一节提出,而且其解决方法很好的利用了分治的思想,将时间复杂度 ...

  2. 快速查找无序数组中的第K大数?

    1.题目分析: 查找无序数组中的第K大数,直观感觉便是先排好序再找到下标为K-1的元素,时间复杂度O(NlgN).在此,我们想探索是否存在时间复杂度 < O(NlgN),而且近似等于O(N)的高 ...

  3. 两个排序数组中求第k大的sum(a+b)

    两个数组A,B. 是排好序的,a是A中的元素,b是B中的元素,求第k大的sum(a+b) 先把a[1]+b[1]放入堆中, 每次从堆中取得最小值,设a[i]+b[j],并扩展a[i+1]+b[j] , ...

  4. 整数无序数组求第k大数

    题目来自牛客网 https://www.nowcoder.com/practice/097ab63cffa847d89716f2ca8c23524f?tpId=90&tqId=30914&am ...

  5. python:无序数组中寻找第K大的元素

    题目: 所谓"第(前)k大数问题"指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题. 解法1:堆排序 采用元素下沉法,维护一个k大小的最小堆, ...

  6. LeetCode实战:数组中的第K个最大元素

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Find the kt ...

  7. 趣解面试高频算法难题:数组中的第K个最大元素

    第二天,在另一家公司-- 小灰是吧?请简单介绍一下你自己. 好的,blah blah blah-- 下面考你一道算法题: 给你一个无序数组,要求你找出数组中的第k大元素. 题目是什么意思呢?比如给定的 ...

  8. vector删除第i个元素_LeetCode每日一题 Q215数组中的第K个最大元素

    Question 215: Kth Largest Element in an Array Difficulty: Medium 题目描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的 ...

  9. 如何寻找无序数组中的第K大元素?

    如何寻找无序数组中的第K大元素? 有这样一个算法题:有一个无序数组,要求找出数组中的第K大元素.比如给定的无序数组如下所示: 如果k=6,也就是要寻找第6大的元素,很显然,数组中第一大元素是24,第二 ...

最新文章

  1. 2022-2028年中国化妆品OEM行业市场发展规模及前瞻分析报告
  2. #include quot;*.cquot;文件的妙用
  3. java 值传递 和 引用传递
  4. java新手笔记1 Hello World!
  5. IO流之过滤流介绍:
  6. 2020 操作系统第一天复习(习题总结)
  7. django 1.8 官方文档翻译: 3-4-1 基于类的视图
  8. Linux多网卡配置高级策略路由---从哪里来就回哪里去~!
  9. GO GOPROXY代理设置
  10. Saber电路仿真软件
  11. 多数投票算法(Boyer-Moore Algorithm)
  12. 选择防身武器,利用身边的物品才是王道
  13. python电子书在线阅读-Python编程快速上手 让繁琐工作自动化
  14. 转载天大一位学长的帖子
  15. Microsoft Word中编辑Visio图形的方法
  16. uniapp日历插件
  17. 问题 E: 来淄博旅游
  18. 语言学句法分析树形图怎么画_教你如何能画语言学树型图
  19. 一篇没有技术点的文章
  20. 多台ubuntu电脑实现时间同步

热门文章

  1. 竞赛规则补充说明 | 无线节能组车模
  2. python中国地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果...
  3. c语言怎么输入学号姓名,c语言如何输入编号和姓名
  4. php二维数组按照自定义方式对键值排序,PHP 对一个给定的二维数组按照指定的键值进行排序...
  5. 计算机会计应用实训,计算机会计模拟实习报告.pdf
  6. 仓库码放要求_货物码放规范
  7. 降序排序_新手需要掌握的Excel排序功能都在这儿了!
  8. linux下用c 开发web,用C一步步开发web服务器(2)
  9. 如何在html中写javascript代码,如何在本地html代码中使用javascript脚本
  10. 串口发送tcp数据 源端口号_三分钟基础知识:用动画给面试官解释 TCP 三次握手过程...