java-慢速计算处理
我试着运行这个,但是速度很慢。需要很长时间才能处理并完成计算。我有什么办法可以改进它或使它更快更有效地工作吗java-慢速计算处理,java,arrays,Java,Arrays,我试着运行这个,但是速度很慢。需要很长时间才能处理并完成计算。我有什么办法可以改进它或使它更快更有效地工作吗 int n = 25; int len = (int) Math.pow(2, n); String[][] BinaryNumbers = new String[len][]; int[] DummyArray = new int[n]; int[][] BinaryNumbersInt = new int[len][]; for (int count = 0; count <
int n = 25;
int len = (int) Math.pow(2, n);
String[][] BinaryNumbers = new String[len][];
int[] DummyArray = new int[n];
int[][] BinaryNumbersInt = new int[len][];
for (int count = 0; count < len; count++) {
BinaryNumbers[count] = String.format("%" + n + "s",
Integer.toBinaryString(count)).replace((" "), ("0"))
.split("");
for (int i = 0; i < n; i++) {
DummyArray[i] = Integer.parseInt(BinaryNumbers[count][i]);
}
BinaryNumbersInt[count] = Arrays.copyOf(DummyArray, DummyArray.length);
}
谢谢 您正在进行大量无用的字符串操作。试着这样做:
for (int count = 0; count < len; count++) {
int[] DummyArray = new int[n];
int x = count;
for (int i = 0; i < n; i++) {
DummyArray[n-i-1] = x & 1;
x >>= 1;
}
BinaryNumbersInt[count] = DummyArray;
}
它实际上应该做什么?做2^25件事需要很长时间,特别是如果你为每件事分配并保留内存的话。我建议删除这个问题,改为在代码审查网站上发布。另外,一定要添加一个问题陈述,解释代码的作用。顺便说一下,for-in-for循环在结束前结束25*25^2=2.220446e+36循环。。。也许这就是为什么要花很长时间。。。只是说。你真的需要BinaryNumbers吗?@o6707448好吧,也许你根本不需要构建数组:你可以在需要的时候计算BinaryNumbersInt[count]的值。