在Java中对数组排序,然后打印它
我的代码中有一个错误,因为排序后它没有打印数组的所有元素。有人能发现它并帮助我吗?我只在我的第五个星期的Java,所以肯定是一个新手在Java中对数组排序,然后打印它,java,arrays,Java,Arrays,我的代码中有一个错误,因为排序后它没有打印数组的所有元素。有人能发现它并帮助我吗?我只在我的第五个星期的Java,所以肯定是一个新手 public class Test01 { public static void main(String[] args) { int[] arr = {1, 3, 5, 4, 2}; for (int i = 0; i < arr.length - 1; i++) { int currentMin = arr
public class Test01 {
public static void main(String[] args) {
int[] arr = {1, 3, 5, 4, 2};
for (int i = 0; i < arr.length - 1; i++) {
int currentMin = arr[i];
int currentMinIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (currentMin > arr[j]){
currentMin = arr[j];
currentMinIndex = j;
}
}
if (currentMinIndex != i) {
arr[currentMinIndex] = arr[i];
arr[i] = currentMin;
}
System.out.print(arr[i] + " ");
}
}
}
其电流输出为:
1234
所以我只是错过了打印“5”
谢谢你的帮助 您正在运行循环,索引不足。改变
for (int i = 0; i < arr.length - 1; i++) { // The -1 is the issue
到
谢谢-这似乎奏效了-我在我的教科书中使用了:for int I=0;i
for (int i = 0; i < arr.length ; i++) {
public class Test01 {
public static void main(String[] args) {
int[] arr = {1, 3, 5, 4, 2};
for (int i = 0; i < arr.length; i++) {
int currentMin = arr[i];
int currentMinIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (currentMin > arr[j]){
currentMin = arr[j];
currentMinIndex = j;
}
}
if (currentMinIndex != i) {
arr[currentMinIndex] = arr[i];
arr[i] = currentMin;
}
System.out.print(arr[i] + " ");
}
}
}