在一个无序数组中,找出最大的第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