gpt4 book ai didi

java - IndexOfMaxInRange 的问题

转载 作者:行者123 更新时间:2023-12-01 13:51:07 24 4
gpt4 key购买 nike

我发帖只是因为我正在编写的代码遇到了障碍。

代码的目标是使用selectionSort 方法中的swap 和IndexOMaxInRange 方法对数组从大到小进行排序。我知道我的代码可能很草率,但我确实遇到了这个问题。

我的问题是:

为什么我不断收到“解析时已到达末尾”错误,这可能是显而易见的,但我不热衷于使用 return 语句,因此在尝试调试此错误时可能会有所帮助,但我对此感到非常迷失。

运行代码时返回的错误是:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at indexofmaxinrange.IndexOfMaxInRange.selectionSort(IndexOfMaxInRange.java:27)
at indexofmaxinrange.IndexOfMaxInRange.main(IndexOfMaxInRange.java:36)
Java Result: 1

code:


package indexofmaxinrange;
import java.util.Arrays;
/**
* @author zrcenivi
*/

public class IndexOfMaxInRange {
public static int indexOfMaxInRange (int[]a){
Arrays.sort(a);
int gindex = a.length - 1;
return gindex;
}
public static int[] swapElement(int[]a2, int j, int i) {
int temp = i;
a2[i] = a2[j];
a2[j] = temp;
return a2;
}
public static int[] selectionSort(int[]a){
Arrays.sort(a);
int min=0; int temp;
for (int i=0;i<=a.length - 1;i++){
min = i;
}
for (int j = a.length; j >=0; j--){
if (a[min]<a[j]){
a = swapElement(a,a[min],a[j]);
}
}
return a;
}
public static void main(String[] args) {
int[] A = {1,3,2};
System.out.println(selectionSort(A));
}

最佳答案

试试这个

for (int j = a.length - 1; j >=0; j--) {
}

而不是

for (int j = a.length; j >=0; j--){
}

此外,这将打印您期望的内容

public static void main(String[] args) {
int[] A = { 1, 3, 2 };
System.out.println(Arrays.toString(selectionSort(A)));
}

关于java - IndexOfMaxInRange 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19945674/

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