import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class TestSF {
public static Set<Integer> getTop100(int[] inputArray) {
TreeSet<Integer> top100 = new TreeSet();
for (int i = 0; i < inputArray.length; i++) {
if (top100.size()<100){
top100.add(inputArray[i]);
}else if ((Integer)top100.first()<inputArray[i]){
Object obj = top100.first();
top100.remove(obj);
top100.add(inputArray[i]);
}
}
return top100;
}
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();
Set<Integer> result = TestSF.getTop100(inputArray);
System.out.println("Spend time:"+(System.currentTimeMillis() - current));
}
}
分享到:
相关推荐
从一亿个数中找出最大的100个 或者n个 用了个堆从一亿个数中找出最大的100个 或者n个 用了个堆
然而,当数据范围非常大时,如本题中的20000个数字,每个数字最大为50000,数组大小将达到1亿,无法直接内存分配。 在第三种尝试中,开发者考虑使用链表来存储数据,期望减少排序操作。链表可以提供O(1)的插入和...
- 找出 10 亿个浮点数中的最大 1 万个,可以使用最小堆(优先队列)来实现。将前 1 万个数放入堆中,之后每遇到一个数,如果它比堆顶元素大,则替换堆顶元素并调整堆。这样堆中始终保存着当前遇到的最大 1 万个数。...
解答:从每个罐子中取出与罐子编号相同数量的药丸,将这些药丸放在一起称重。被污染的药丸重量增加,根据实际重量与正常重量之间的差值可以推算出被污染药丸的数量,从而确定被污染的罐子。 **4. 如何确定开关和灯...
前50个图形中,每5个一组,○有10个,☆有30个。 10. 大数改写与省略尾数:1380000000人等于138000万人,省略亿后面的尾数是14亿人。 11. 平行四边形面积与周长:平行四边形活动框架的面积无法判断,因为没有具体...
%val 519322y = 51.9322tril (2012年国内生产总值,y是后缀运算符,表示前值乘以1亿) 6-固定比例输出格式 (1)按百分比输出 %2 %2将结果按百分比格式输出,例如: 对150种食品进行抽查,仅105种合格,合格率...
1. 数字转换:题目中提到的101830000美元需要改写成以“万”为单位的数,以及四舍五入到亿位,这是数字大小的转换技巧,涉及到整数的进位和舍去规则。 2. 估算:在解决数学问题时,估算是一种快速近似计算的方法。...
3. 在长方形中画一个半径最大的圆,圆的半径通常是长方形较短边的一半,面积计算公式为πr²。 六、解决问题: 1. 设梨的重量为y千克,根据题意列出方程:3y - 10 = 230。 2. 设梨的重量为z千克,根据题意列出方程...
- 问题8描述了一个有红蓝球各5个的袋子,为了确保取出两个颜色相同的球,至少需要取出3个球,因为前两次取出不同颜色的球,第三次肯定能与前两次中的某一种颜色匹配。 9. **快速心算**: - 二部分直接写出得数的...
1. 数字转换与近似值:题目中提到将101830000美元改写成以"万"为单位的数,并四舍五入到亿位,涉及到数字的进位和四舍五入规则。在数学中,将一个数改写成以"万"为单位,就是要除以10000;四舍五入到亿位,要看千万...
这样,随机选择一个罐子后,如果选中包含红球的罐子,就能以100%概率取出红球。 6. **为何镜子中的影像会颠倒左右,而不颠倒上下?** - 镜像的形成是由于光的反射原理,镜子不会颠倒上下是因为我们习惯性地站立...
- 大数的读法与改写:8114000000 读作八十一亿一千四百万,改写成以“亿”为单位是81.14亿。 - 百分数的应用:98% 表示百分比,可以转换成小数0.98。 5. 数学概念与性质: - 自然数的性质:A-B=1 时,A和B的最小...
11377亿保留两位有效数字是11000亿,即1.1 * 10^4亿。 11. **小数的科学记数法**:0.0625用科学记数法表示为6.25 * 10^-2。 12. **整数的范围**:在-3.5和2.5之间的整数有-3, -2, -1, 0, 1, 2,共6个。 13. **...
在中文中,数字的表示方法遵循从高位到低位的规则,亿是10^8,千万是10^7,百万是10^6,十万是10^5,万是10^4,千是10^3。因此,这个数写作1,840,509,000,改写成以万为单位即18,405.09万。 2. 单位换算:5吨820...
1. 数字和数值的理解:在第一道选择题中,涉及到数字"4"在7.49亿中的意义,需要理解亿位上的数字所代表的数值范围。 2. 百分数应用:第二题考察了百分比的计算,包括提价和降价对原价的影响,需要计算出两次百分比...
118900平方米读作“十一万八千九百”,2688000000元读作“二十六亿八千八百万”。 3. 圆规用来画圆,其两脚尖的距离即为圆的半径。若直径为8cm,半径则为4cm。 4. 时针每小时走过的角度是360°/12=30°,因此6小时...
四舍五入到亿位,则需要对千万位上的数字进行判断,这里是8,根据四舍五入规则,不进位,因此四舍五入后为1亿美元。 2. **估算技巧**:估算24.01 - 7.98时,可以取近似值24 - 8 = 16进行计算。对于14.9 × 2.03的积...
1. 数字表示和近似值:题目中提到的小数,其整数部分是最大的两位数(99),小数部分的千分位是最小的合数(4),百分位上是最小的质数(2),十分位是最小的偶数(0)。这个数就是99.024,用四舍五入法省略百分位后...
1. 数字和数值的理解:在第一道选择题中,问题涉及到数位的概念,"4"在7.49亿中表示4000万。 2. 百分数的应用:第二题中,原价100元的衣服先提价10%再降价10%,通过计算可以理解百分比的增减对原值的影响。 3. ...