gpt4 book ai didi

Java ArrayIndexOutOfBoundsException MOOC 赫尔辛基 - 我的代码中的错误在哪里?

转载 作者:太空宇宙 更新时间:2023-11-04 10:56:53 26 4
gpt4 key购买 nike

我一直在寻找答案,但没有任何结果。我知道这个异常意味着我试图到达不存在的数组元素,但我只是看不到它。

这是来自赫尔辛基 MOOC 的练习 104,您可以在这里阅读

http://mooc.cs.helsinki.fi/programming-part1/material-2013/week-6?noredirect=1

我应该通过依次创建五个方法来创建排序算法。我已经创建了前四个,但最后一个却出现了问题。我不知道这只是改变了一个角色,还是整个结构有缺陷。

我将不胜感激您的帮助,请随意对我的代码发表评论,但如果可能的话不要覆盖整个事情,我不想为我解决它,只是一些提示和帮助。

import java.util.Arrays;

public class Main {

public static int smallest(int[] array) {
int result = array[0];
int position = 0;
for (int i = 0; i < (array.length); i++) {
if (result > array[i]) {
result = array[i];
position = i;
}
}
return result;

}

public static int indexOfTheSmallest(int[] array) {
int result = array[0];
int position = 0;
for (int i = 0; i < (array.length); i++) {
if (result > array[i]) {
result = array[i];
position = i;
}
}
return position;
}

public static int indexOfTheSmallestStartingFrom(int[] array, int index) {
int result = array[index];
int position = 0;
for (int i = index; i < array.length; i++) {
if (result > array[i]) {
result = array[i];
position = i;
}
}
return position;
}

public static void swap(int[] array, int index1, int index2) {
int a = array[index1];
int b = array[index2];

array[index1] = b;
array[index2] = a;
}

public static void sort(int[] array) {
int temp;
for (int x = 0; x < array.length; x++) {
System.out.println(Arrays.toString(array));
temp = indexOfTheSmallestStartingFrom(array, x);
swap(array, array[x], temp);
}
}

public static void main(String[] args) {
int[] values = {8, 3, 7, 9, 1, 2, 4};
sort(values);
}
}

最佳答案

更改交换(数组,数组[x],临时);到交换(数组,x,临时);

关于Java ArrayIndexOutOfBoundsException MOOC 赫尔辛基 - 我的代码中的错误在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47273366/

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