用优先队列 public PriorityQueue<Integer> kthLargest(int k, int[]a) { PriorityQueue<Integer> q = new PriorityQueue<>(k); for (int i : a) { if (q.size() < k) { q.offer(i); }else { if (i > q.peek()) { q.poll(); q.offer(i); } } } return q;…
(转载请注明出处:http://blog.csdn.net/buptgshengod) 题目介绍 在n个数中取第k大的数(基础篇),之所以叫基础篇是因为还有很多更高级的算法,这些以后再讨论.本文用两种最基本的方法来解决这个问题.使用java语言描述.例子是十个数中取第三大的. 算法一 用冒泡法将n个数从大到小排序,再取第k大. public class test { public static void main(String []args) {…