【发布时间】:2009-06-12 09:35:35
【问题描述】:
- 假设给定一个大小为 n 且具有排序值的数组。
- 在第 i 次迭代中,给出一个新的随机生成值,并插入到数组的末尾。
- 然后重新使用数组,并丢弃最小值项。
- 迭代 n 后,保留的数组将包含最大值的项。
例如,在 Java 语法中,它会是这样的:
List l = new ArrayList();
l.add(new Integer(2));
l.add(new Integer(3));
l.add(new Integer(6));
l.add(new Integer(9));
Random rand = new Random();
for (int i=0; i < n; i++) {
l.add(new Integer(rand.nextInt(1000)));
}
Collections.sort(l);
l.remove(0);
但它似乎效率低下。有更好的算法吗?
【问题讨论】:
-
@Bob Cross:我需要完全相同的东西,这不是功课
-
@nimcap,我很高兴你找到了这个问题。
标签: java algorithm arrays sorting