寻找最大的第K个数

原创 2012年03月30日 10:41:16

在一个无序数组中,找出最大的第K个数,数组大小为N。


算法很多。比较好的算法有

1、比较法(简单,当K小时可以考虑)

2、快排法(平均时间好)

3、堆。两种方法

 3、1 大堆:存储所有N个元素

 3、2 K堆:存储K个元素

4、压缩区间(很好的算法,尤其是这些数是整数的时候)

还有其它方法,可以参考以下网址。注意,下面那些总结得也不一定很好。

http://www.binghe.org/2011/05/find-kth-largest-number-in-disorder-array/

http://www.cnblogs.com/zhjp11/archive/2010/02/26/1674227.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

2.5 寻找最大的K个数.pdf

  • 2011-11-15 10:50
  • 325KB
  • 下载

寻找最大K个数topK算法

寻找一个数组中,最大的K个数,例如,我们的数组 int treeNodeValue[]={5,3,7,2,4,6,8,9,0,1}; 寻找最大的三个数,k=3;这三...

编程之美2.5 “寻找最大K个数”

解法二用快速排序划分的方法 #include #include using namespace std; const int K=5; int Partition(int data[],int ...

【编程之美】读书笔记:寻找最大的K个数[转帖]

问题:查找大量无序元素中最大的K个数。          解法一:该解法是大部分能想到的,也是第一想到的方法。假设数据量不大,可以先用快速排序或堆排序,他们的平均时间复杂度为O(N*logN),...
  • leo115
  • leo115
  • 2012-10-02 21:58
  • 1639

编程之美 读书笔记(寻找最大的k个数)

实际的情况我觉得往往要考虑到数的范围,数的特点(整数还是浮点,重复多不多)以及K与数组长度N的比例关系,数组长度N是否超出内存大小等等因素。 问题:有很多无序的数,姑且假定它们各不相等,怎么选出其中...

寻找最大的K个数 (C语言实现)

题目:100亿个整数,求最大的1万个数,并说出算法的时间复杂度   算法:如果把100亿个数全部读入内存,需要100 0000 0000 * 4B 大约40G的内存,这显然是不现实的。 我们可以...

编程之美 -- 2.5 寻找最大的K个数(快排方法)

题目描述 寻找N个数字中最大的K个数字 package chapter_2_binary; import java.util.Random; import java.util.Scann...

寻找最大的K个数--递归解法

算法思想:使用快排中的思想,随机从数组中选择一个元素x,将数组元素分成两部分Sa和Sb,其中Sa>x,Sb 1. Sa中元素个数小于K,Sa中所有的数和Sb中最大的K-length(Sa),就是S中...

编程之美 -- 2.5 寻找最大的K个数(堆排序方法)

题目描述 寻找N个数字中最大的K个数字 package chapter_2_binary; import java.util.Scanner; /** * @author...

【数字之魅】寻找最大的K个数(求第k大的数)

前言:编程之美上并没有给出实际的代码,这里我参考yoona博主的做法自己也写了一遍,并记录下来。 与此相似的题目是: - 求第k大的数 - 求第k小的数 这里给出比较好的两个做法,分别是快...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)