java数组排序中的代码错误

java数组排序中的代码错误,java,arrays,sorting,Java,Arrays,Sorting,当我运行以下程序(创建一个随机整数数组,然后在www.jdoodle.com中对它们进行排序)时,我收到以下错误消息: 我就是找不到这个该死的虫子。也许你们中一些更有经验的人可以看看代码?非常感谢 ========================================================================= import java.util.Random; import java.util.Arrays; public class Sort {

当我运行以下程序(创建一个随机整数数组,然后在www.jdoodle.com中对它们进行排序)时,我收到以下错误消息:



我就是找不到这个该死的虫子。也许你们中一些更有经验的人可以看看代码?非常感谢

=========================================================================

import java.util.Random;
import java.util.Arrays;

public class Sort {

    public static void main(String[] args) {
        int[] arr = createArray(20);
        System.out.println("arr = " + java.util.Arrays.toString(arr));

        int[] sortArr = sortArray(arr);
        System.out.println("sorted arr = " + '\n'
        java.util.Arrays.toString(sortArr));
    }

    public static int[] createArray(int l) {
        int[] vektor = new int[l];
        for(int i = 0; i < vektor.length; i++) {
            java.util.Random r = new java.util.Random();
            int n = r.nextInt(100);
            vektor[i] = n;
        }
        return vektor;
    }

    public static int[] sortArray(int[] inArr) {
        int a[] = inArr;
        int i, j, min, help = 0;
        int minPos = a.length;
        for(i = 0; i < a.length; i++) {
            min = a[i];
            for(j = 1; j < a.length - i; j++) {
                if(a[j] < min) {

                    minPos = j;
                }
                help = a[minPos]; // <--- Line 35
                a[minPos] = a[i];
                a[i] = help;
            }
        }
        return a;
    }

}
import java.util.Random;
导入java.util.array;
公共类排序{
公共静态void main(字符串[]args){
int[]arr=createArray(20);
System.out.println(“arr=“+java.util.Arrays.toString(arr));
int[]sortArr=sortArray(arr);
System.out.println(“排序的arr=“+”\n”
toString(sortArr));
}
公共静态int[]createArray(int l){
int[]vektor=新的int[l];
for(int i=0;i
System.out.println("sorted arr = " + '\n'
        java.util.Arrays.toString(sortArr));
您在
\n
java.util.array.toString(sortArr)
之间缺少一个
+
除了示例错误,您将
minPos
等同于
a.length
,这等于
20

如果您的代码没有输入
如果(a[j]
,那么
a[minPos]
将与
a[20]相同
,这是错误的:数组有20个位置,从0到19。最后一个位置应该是
a[19]

您可以通过以下方式实现这一目标:

int minPos = a.length - 1;
你有:

int minPos = a.length;
...
    help = a[minPos];
因此,如果这两行之间的代码都没有更改
minPos
,则会出现此错误

你的意思可能是:

int minPos = a.length - 1;

您能在代码中标记第35行的位置吗?
int minPos = a.length - 1;