java实现——030最小的k个数
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实现——030最小的k个数的更多相关文章
- Java实现寻找最小的k个数
		1 问题描述 有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低. 2 解决方案 2.1 全部排序法 先对这n个整数进行快速排序,在依次输出前k个数. package com.liuzhen. ... 
- 剑指Offer:面试题30——最小的k个数(java实现)
		问题描述: 输入n个整数,找出其中最小的k个数 思路1: 先排序,再取前k个 时间复杂度O(nlogn) 下面给出快排序的代码(基于下面Partition函数的方法) public void Quic ... 
- 【面试题030】最小的k个数
		[面试题030]最小的k个数 题目: 输入n个整数,找出其中最小的k个数. 例如输入4.5.1.6.2.7.3.8这8个字,则其中最小的4个数字是1.2.3.4. 思路一: ... 
- 【Java】 剑指offer(40) 最小的k个数
		本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7 ... 
- 剑指Offer-29.最小的K个数(C++/Java)
		题目: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 分析: 最先想到的是将数组升序排列,返回前k个元素.不过排序的话效率 ... 
- Java找N个数中最小的K个数,PriorityQueue和Arrays.sort()两种实现方法
		最近看到了 java.util.PriorityQueue.刚看到还没什么感觉,今天突然发现他可以用来找N个数中最小的K个数. 假设有如下 10 个整数. 5 2 0 1 4 8 6 9 7 3 怎么 ... 
- 算法笔记_035:寻找最小的k个数(Java)
		目录 1 问题描述 2 解决方案 2.1 全部排序法 2.2 部分排序法 2.3 用堆代替数组法 2.4线性选择算法 1 问题描述 有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低. 2 ... 
- 剑指Offer面试题:27.最小的k个数
		一.题目:最小的k个数 题目:输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 这道题是典型的TopK问题,其最简单的思路莫过于 ... 
- 剑指offer面试题30:最小的k个数
		一.题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 二.解题思路 1.思路1 首先对数组进行排序,然后取出前k个数 ... 
随机推荐
- javascript语句语义大全(1)
			1. <script></script> javascript标签对,所有javascript内容都会写在这个里面 2. var a=0; var a; 变量的声明,上面的是声 ... 
- StringWriter/PrintWriter在Java输出异常信息中的作用
			闲来无事,看看JUnit的源代码.刚刚开始看就发现一段有趣的代码: public String trace() { StringWriter stringWriter = new StringWrit ... 
- ListView random IndexOutOfBoundsException on Froyo
			http://stackoverflow.com/questions/8431342/listview-random-indexoutofboundsexception-on-froyo 今天遇到个 ... 
- PAT (Advanced Level) 1107. Social Clusters (30)
			简单并查集. #include<cstdio> #include<cstring> #include<cmath> #include<vector> # ... 
- Hibernate中,将session绑定到线程时,在保存和查询数据的代码里,要正确的关闭session
			比如有个保存的方法 // 保存 public void save(){ Transaction t = XXX Session s = getSession.beginTransaction(); X ... 
- cakephp 的事件系统(Getting to grips with CakePHP’s events system), 基于观察者模式
			This article was written about CakePHP 2.x and has been untested with CakePHP 3.x CakePHP seems to g ... 
- merge_partition
			set echo on time on timing on spool 01_merge_partition.log @/testdb/change/env/env_test.sql connect ... 
- HDU 1815 Building roads
			二分答案 + 2-SAT验证 POJ 稳过,HDU C++ 超时,G++ 550ms左右AC #include<cstdio> #include<cstring> #inclu ... 
- BZOJ 3110:[Zjoi2013]K大数查询(整体二分)
			http://www.lydsy.com/JudgeOnline/problem.php?id=3110 题意:-- 思路:其实和之前POJ那道题差不多,只不过是换成区间更新,而且是第k大不是第k小, ... 
- fragment 数据传递,通信
			Fragment之间的通信 在本节中,你会学到 1.定义接口 2.实现接口 3.将消息传递给fragment 为了重用Fragment UI 组件,在设计中你应该通过定义每一个fragemnt自己 ... 
