生成数百万个随机整数作为Java程序的输入
我用Java编写了一些排序算法,并对小输入验证了它们的正确性。现在,我想检查它们之间的对比情况,因为需要排序的元素数量达到了数百万 所以我在台阶上找东西:生成数百万个随机整数作为Java程序的输入,java,algorithm,sorting,terminal,Java,Algorithm,Sorting,Terminal,我用Java编写了一些排序算法,并对小输入验证了它们的正确性。现在,我想检查它们之间的对比情况,因为需要排序的元素数量达到了数百万 所以我在台阶上找东西: 运行排序算法 询问用户想要排序的元素数(我可能输入>100万) 通过随机整数生成输入的大小 我想知道如何实现第三步,而不必重写排序算法本身。我正在使用LINUX终端运行我的代码 谢谢 有一种相当简单的方法将linux脚本的输出链接到java程序的输入。以下方法应该适合您 echo N | ./createInput.sh | java -cp
谢谢 有一种相当简单的方法将linux脚本的输出链接到java程序的输入。以下方法应该适合您
echo N | ./createInput.sh | java -cp "/srcpath/" packagePath/YourInputToAlgorithm
其中:
#!/bin/bash
# Read the number of elements
read NUMBER_ELEMENTS
# Must echo it to Java program
echo $NUMBER_ELEMENTS
# This implementation just creates number 1..NUMBER_ELEMENTS in reverse order
until [ $NUMBER_ELEMENTS-lt 1 ]; do
echo $NUMBER_ELEMENTS
let NUMBER_ELEMENTS-=1
done
Java代码:
public class ReadStdIn {
public static void main(String[] args) {
List<Integer> input = new ArrayList<Integer>();
Scanner s = new Scanner(System.in);
int numberElements = s.nextInt();
while (numberElements > 0) {
input.add(s.nextInt());
numberElements--;
}
s.close();
Collections.sort(input); // Here you would call your algorithm
System.out.println(input);
}
}
按预期创建输出:
[1, 2, 3, 4, 5]
到目前为止,您尝试了什么?您的问题是什么?我已经编写了一个脚本,可以为我生成随机整数。我没有得到的是如何将此脚本的输出作为排序算法脚本的输入。如果我们对您的代码一无所知,如何建议如何从您的脚本传递值?你的算法在哪里实现?生成输入的脚本在哪里?这是否意味着该脚本不是Java语言?为什么?我要做的是:从中获取随机数,每行一个,然后使用
BufferedReader
或LineNumberReader
读取所需的整数行数。
[1, 2, 3, 4, 5]