java实现——030最小的k个数
2014-05-08 10:23
218 查看
1.O(nlogk)海量数据
import java.util.TreeSet; public class T030 { public static void main(String[] args){ int[] data = {4,5,1,6,2,7,3,8}; TreeSet<Integer> leastNumbers = new TreeSet<Integer>(); getLeastNumbers(data,leastNumbers,4); } public static void getLeastNumbers(int[] data,TreeSet<Integer> leastNumbers,int k){ leastNumbers.clear(); if(k<1||data.length<k) return; for(int i=0;i<data.length;i++){ if(leastNumbers.size()<k) leastNumbers.add(data[i]); else{ System.out.println(leastNumbers.last().hashCode()); if(data[i]<leastNumbers.last().hashCode()){ leastNumbers.remove(leastNumbers.last()); leastNumbers.add(data[i]); } } } System.out.println(leastNumbers.toString()); } }
相关文章推荐
- Java实现-最小路径和
- java递归实现最大公约数和最小公倍数
- 剑指offer刷题之java实现的把数组排成最小的数
- java实现图的最小生成树(森林)MST克鲁斯卡尔(Kruskal)算法
- Java实现最小生成树Kruskal算法
- java实现最小生成树的prim算法和kruskal算法
- 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径
- 数组求最大最小值和排序java实现
- 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】
- JAVA实现旋转数组的最小数字问题(《剑指offer》)
- java中数据类型间的最大值,最小值及转换程序代码实现
- 最小生成树之Kruskal算法 Java实现
- 最小的K个数 java实现 剑指offer
- java实现栈-输出最大值,最小值,时间复杂度O(1)
- 旋转数组的最小数字java实现
- 最小生成树-Prim算法 java代码实现
- Java获取一维数组的最小值实现方法
- java实现输入n个整数,找出其中最小的K个数
- c++/java/python priority_que实现最大堆和最小堆
- Java实现最小公倍数和最大公约数