我这个是数量小,如果数量大些有什么办法还没想到
public static Set<Integer> getTop100(int[] inputArray) {
TreeSet<Integer> top100 = new TreeSet();
for (int i = 0; i < inputArray.length; i++) {
if (top100.size() < 10) {
top100.add(inputArray[i]);
System.out.println(inputArray[i]+"before1");
} else if (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 = 100;
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 = Manager.getTop100(inputArray);
System.out.println("Spend time:"
+ (System.currentTimeMillis() - current));
}
分享到:
相关推荐
具体来说,目标是从1000个随机生成的整数中,找出前10个最大值。这里的关键在于,算法不是对整个数组进行排序,而是采取了一种分段查找和局部优化的策略,以减少不必要的比较和移动操作,从而达到节省时间的目的。 ...
在第一个示例中,程序接收三个整数a、b、c作为输入,并输出这三个数中的最大值。这涉及到基本的比较操作和条件语句的使用。具体步骤如下: 1. 定义变量a、b、c以及一个额外的变量max用于存储最大值。 2. 使用`cin`从...
2. **数的构成**:10个一是10,10个十是100,10个一百是1000,10个一千是10000。数字的大小取决于其数位上的数字和其所在的位置。 3. **数的读法**:读数时,从高位开始,比如千位上是几就读几千,百位上是几就读几...
例如,当我们有三位精度的十进制数3.51和0.234相加,它们的精确和3.744超出了三位精度,所以结果必须通过舍入规则来确定。 在实际应用中,尤其是涉及到金融计算时,为了确保精度,可以将小数部分转换为整数处理,...
在这个测试用例中,边界值可能包括1位数的最小值(1)和最大值(9),2位数的边界(10、99),3位数的边界(100、999)以及4位数的边界(1000、9999)。 3. **等价类划分**: - 等价类划分是另一种常用的测试策略...
算法基于原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。代码中用do-while循环实现,直到余数为0,此时的除数即为GCD,乘以两数之积得到最小公倍数LCM。 2. 位操作: 输入一个整数,将它...
1. 数的构成:文档中提到10个十是100,10个一百是1000,10个一千是一万,这是数位进制的基本规则,10个单位进一位,体现了十进制的特点。 2. 数的读写:如题目要求写出数的读法和写法,比如写作4026,读作四千零二十...
5. **数组操作与排序**:从用户输入的逗号分隔数字字符串中,解析出数字,找出最大值、最小值和求和,然后对数字进行排序。这涉及到数组的`split()`, `sort()`, `reduce()`等方法。 6. **闰年判断**:使用条件语句...
综合题第十四题要求学生利用5、0、0、6这四个数字组成不同的数,并给出最大、最小的四位数,以及只读一个“0”和不读“0”的数。最后,第六题的应用题通常需要学生根据图片信息列示计算,可能涉及到加减法。 这个...
从右向左,每四个数位分为一级,个级包括个、十、百、千这四个数位,表示多少个基本单位。万级包括万、十万、百万和千万,表示多少个万。 - 例如,题目中提到的第1题,千万位左边是亿位,右边是百万位。 - 第2题...
(12)编写程序验证以下说法:输入一个4位数,该数个、十、百、千位上的数互不相等,由个、十、百、千位上的数组成一个最大数和一个最小数,最大数-最小数,构成一个新的4位数。反复以上运算,使其最终结果为:6174...
从塔顶走到塔底的过程中,每一步只能选择与当前位置相邻的下一个方格。问题要求找到一条路径,使得经过该路径的所有方格内的数字之和最大。 **输入格式**:输入的第一行是一个整数 n (1 ≤ n ≤ 1000),表示数字迷...
5. 数位名称:数位表中,从右起第二位是十位,最低位是个位。 6. 数的组成:如9587由9个千,5个百,8个十,7个一组成。 7. 数位识别:从右边起,第二位是十位,第三位是百位,第五位是万位。 8. 数的范围:最小的三...
在选择题中,7069这个数中的“7”位于千位,表示的是7个千,因此正确答案是C. 7个千。这要求学生能准确理解每一位数字所代表的数值,例如在7069中,7在千位,表示7000;0在百位,表示0;6在十位,表示60;9在个位,...
10. **判断题与选择题**:检验对数的性质和读写的理解,如判断一个数是否正确,选择合适的方式读写或组成数。 通过这样的练习,孩子们可以巩固对万以内数的理解,提升他们的计算能力和逻辑思维。这些基础知识对于...
- 对于每个数n (1 ≤ n ≤ 1000),遍历从1到n/2的所有整数i,检查i是否为n的因子。 - 如果i是n的因子,则将其加入到因子和中。 - 最后检查因子和是否等于n,如果是,则n是一个完数。 #### 知识点2:斐波那契数列...
- 最小的两位数是10,最大的一位数是9,它们的乘积是90。 - 50 * 80的积末尾有两个0,因为8乘以5会生成一个0,而50和80各自还有一个0,所以总共有2个0。 - 3 * 11的最大积是1023,因为3 * 11 = 33,再乘以33的十...
程序分析给出的判断素数的方法是通过除法,检查从2到该数平方根的所有整数是否能整除该数。 【程序3】 "水仙花数"是三位数,其各位数字立方和等于该数本身。程序分析中通过循环遍历100到999,逐个计算并判断是否为...
- 近似数为100万的最大数是999999,这是正确的。 13. **选择题解析**: - 与最大的六位数相邻的两个数是999999和1000000,选C。 - 300500读作三百万零五百,选B。 - 最小的自然数是0,选A。 - 分级正确的选项...
1. **最大组合**:将组成这个四位数的四个数字按照从大到小的顺序排列,得到一个新的最大四位数。 2. **最小组合**:将组成这个四位数的四个数字按照从小到大的顺序排列,得到一个新的最小四位数(若其中包含0,则...