您的位置:首页 > 编程语言 > Java开发

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());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: