gpt4 book ai didi

java - 需要家庭作业帮助

转载 作者:行者123 更新时间:2023-12-01 15:29:38 25 4
gpt4 key购买 nike

这是作业:编写一个对二维矩阵的元素进行排序的方法。例如

sort({{1,4}{2,3}}) 

将返回一个矩阵

{{1,2}{3,4}}.

我不知道我的代码中做错了什么,因为我得到的输出是 3.0、3.0、4.0、4.0。

这就是我到目前为止所得到的任何帮助,我们将不胜感激。

public static void main(String[] args) {
double[][] array = { {1, 4}, {2, 3} };
double[][] new_array = sort(array);
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array.length; j++) {
System.out.print(new_array[i][j] + " ");
}
}

}

public static double[][] sort(double[][] array) {
double[] storage = new double[array.length];
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array.length; j++) {
storage[i] = array[i][j];
}
}
storage = bubSort(storage);
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array.length; j++) {
array[i][j] = storage[i];
}
}
return array;
}

public static double[] bubSort(double[] list) {
boolean changed = true;
double temp;
do {
changed = false;
for (int j = 0; j < list.length -1; j++)
if (list[j] > list[j + 1]) {
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
changed = true;
}
} while (changed);
return list;
}

}

最佳答案

您遇到的主要问题是如何将二维数组中的值复制到一维数组中。实际上,您只是将两个值复制到长度为 2 的数组中。二维数组的长度不是完整的 m x n 长度。

我将给出一个小提示,说明如何从 2d 数组复制到 1d 数组,但如何从 1d 数组复制回 2d 数组则取决于您。另外,你将如何找到数组的完整长度?

    double[] storage = new double[4];//You should calculate this value
int k = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
storage[k++] = array[i][j];
}
}

您的冒泡排序工作正常,但是您将错误的值复制回来。尝试在排序后打印数组存储,您会发现它现在是正确的。

关于java - 需要家庭作业帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com