文档章节

位图排序:从1亿个数字中取出最大的100个

o
 osc_x4h57ch8
发布于 2018/04/24 14:56
字数 151
阅读 0
收藏 0
package com.zetyun.test;

import java.util.Random;

public class Top100 {
public static int[] getTop100(int[] inputArray) {

int maxValue = Integer.MIN_VALUE;
for (int i = 0; i < inputArray.length; i++) {
if (maxValue < inputArray[i]) {
maxValue = inputArray[i];
}
}
byte[] bitmap = new byte[maxValue+1];
for (int i = 0; i < inputArray.length; i++) {
int value=inputArray[i];
bitmap[value] = 1;
}

int[] result = new int[100];
int index = 0;
for (int i = maxValue; i >= 0 & index < 100; i--) {
if (bitmap[i] == 1) {
result[index++] = i;
}
}
return result;
}

public static void main(String[] args) {
int numberCount = 100000000;
int maxNumber = numberCount;
int inputArray[] = new int[numberCount];
Random random = new Random();
for (int i = 0; i < numberCount; i++) {
inputArray[i] = Math.abs(random.nextInt(maxNumber));
}
System.out.println("Sort begin...");
long current = System.currentTimeMillis();
int[] result = Top100.getTop100(inputArray);
System.out.println(System.currentTimeMillis() - current);
for (int i = 0; i < result.length; i++) {
System.out.print(result[i] + ",");
}
}
}
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

李开复谈2020年AI科学家创业。道翰天琼认知智能api机器人接口。

2012年至今,在深度学习推动下,这一波人工智能的蓬勃发展已进入第十个年头。 在初期,一系列由AI科学家创建的初创公司,经过大浪淘沙,如今已有多家脱颖而出成为独角兽企业;榜样在先,于是...

jackli2020
35分钟前
9
0
什么是PHP中的线程安全或非线程安全? - What is thread safe or non-thread safe in PHP?

问题: I saw different binaries for PHP, like non-thread or thread safe? 我看到了PHP的不同二进制文件,例如非线程还是线程安全的? What does this mean? 这是什么意思? What is the ...

fyin1314
48分钟前
26
0
移动社交如何玩?网易云信携手崽崽和Uki打造更多新场景!

随着95后、00后为主的年轻一代逐渐成为中国移动社交下的主力军,社交需求也发生了一些变化。这些年轻用户更倾向于有趣好玩,形式多样化的社交方式。同时也产生了如“扩列”、“养火花”等众多...

真正稳定的网易云信
55分钟前
22
0
如何在Java代码中去掉烦人的“!=null”

问题 为了避免空指针调用,我们经常会看到这样的语句 if (someobject != null) { someobject.doCalc();} 最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥...

码农突围
55分钟前
21
0
ELK使用容器集成安装

1. 查看集成ELK:sebp docker search sebp 2. 设置内核参数 sysctl -w vm.max_map_count=262144 3. 拉取sebp/elk docker pull sebp/elk 4. 运行ELK yum install -y java # java环境 1.8 以上......

huanke
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部