Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从最高到最低排序数组 /** *@param指定命令行参数 */ 公共静态void main(字符串[]args){ int[]x; x=新整数[3]; x[0]=4; x[1]=1; x[2]=2; x[3]=3; x=sortArray(x); System.out.println(x[2]); } 公共静态int indexOfMaxInRange(int[]A,int i){ int maxIndex=A[0]; while(imaxIndex){ maxIndex=A[i]; } i++; } 返回最大索引; } 公共静态int[]swapElement(int[]A,int i1,int i2){ int i1value=A[i1]; int i2value=A[i2]; A[i1]=A[i2]值; A[i2]=A[i1值]; 返回A; } 公共静态int[]sortArray(int[]A){ for(int i=0;i_Java_Arrays - Fatal编程技术网

Java 从最高到最低排序数组 /** *@param指定命令行参数 */ 公共静态void main(字符串[]args){ int[]x; x=新整数[3]; x[0]=4; x[1]=1; x[2]=2; x[3]=3; x=sortArray(x); System.out.println(x[2]); } 公共静态int indexOfMaxInRange(int[]A,int i){ int maxIndex=A[0]; while(imaxIndex){ maxIndex=A[i]; } i++; } 返回最大索引; } 公共静态int[]swapElement(int[]A,int i1,int i2){ int i1value=A[i1]; int i2value=A[i2]; A[i1]=A[i2]值; A[i2]=A[i1值]; 返回A; } 公共静态int[]sortArray(int[]A){ for(int i=0;i

Java 从最高到最低排序数组 /** *@param指定命令行参数 */ 公共静态void main(字符串[]args){ int[]x; x=新整数[3]; x[0]=4; x[1]=1; x[2]=2; x[3]=3; x=sortArray(x); System.out.println(x[2]); } 公共静态int indexOfMaxInRange(int[]A,int i){ int maxIndex=A[0]; while(imaxIndex){ maxIndex=A[i]; } i++; } 返回最大索引; } 公共静态int[]swapElement(int[]A,int i1,int i2){ int i1value=A[i1]; int i2value=A[i2]; A[i1]=A[i2]值; A[i2]=A[i1值]; 返回A; } 公共静态int[]sortArray(int[]A){ for(int i=0;i,java,arrays,Java,Arrays,这会不断出现错误。 我似乎找不到我的程序有什么问题。 该程序的目标是对数组进行从高到低的排序。让我们从x[3]=3开始。因为您声明x的大小为3,所以最大索引为2。这可能是您最初的错误,ArrayIndexOutOfBoundsError-这基本上意味着您试图为数组的索引分配一个不在[0,len(array)-1]范围内的值。因此,要么增加数组的大小,要么不为索引3分配元素 另外,为了将来的参考,让我们知道你得到了什么错误会很有帮助 调用函数时,函数名和左括号之间尽量不要有空格。我相信它仍然可以编

这会不断出现错误。 我似乎找不到我的程序有什么问题。
该程序的目标是对数组进行从高到低的排序。

让我们从x[3]=3开始。因为您声明x的大小为3,所以最大索引为2。这可能是您最初的错误,ArrayIndexOutOfBoundsError-这基本上意味着您试图为数组的索引分配一个不在[0,len(array)-1]范围内的值。因此,要么增加数组的大小,要么不为索引3分配元素

另外,为了将来的参考,让我们知道你得到了什么错误会很有帮助

调用函数时,函数名和左括号之间尽量不要有空格。我相信它仍然可以编译,但读起来很奇怪。另外,在等号周围添加空格。例如:

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    int[] x;
    x= new int [3];
    x[0]=4;
    x[1]=1;
    x[2]=2;
    x[3]=3;
    x=sortArray (x);
    System.out.println (x[2]);
}

public static int indexOfMaxInRange(int[] A, int i){
    int maxIndex=A[0];
    while (i < A.length) {
        if (A[i]>maxIndex){
            maxIndex= A[i];
        }
        i++;
    }
    return maxIndex;
}

 public static int[] swapElement (int[] A,int i1,int i2) {
    int i1value=A[i1];
    int i2value=A[i2];
    A[i1]=A[i2value];
    A[i2]=A[i1value];
    return A;
}

 public static int[] sortArray (int[] A) {
    for (int i = 0; i < A.length; i++) {
        int x=indexOfMaxInRange (A,i);
        swapElement (A,x,i);
    }
    return A;
}
应该是:

int x=indexOfMaxInRange (A,i);
从我收集的信息来看,您正在实现选择排序,在这里,您可以获得整个数组的最大值,将其作为第一个元素,并查找数组中的最高值,同时忽略第一个元素并将该元素作为数组中的第二个元素。等等等等


交换函数看起来和sortArray函数一样好,但是,indexmaxfrange函数不正确。我将让您自己修复该函数,但我要说的是,IndexMaxFrange期望返回一个索引,并且在该函数中的任何位置都没有指定maxIndex作为索引

您确实应该说明错误是什么,但在swapElement方法中它看起来像是索引超出范围的错误,因为您使用数组中的值作为索引。还要注意,您的算法是O(n^2),因为您从序列的开始处对序列的每个元素进行迭代。你得到了几张反对票——可能是因为像“为什么这段代码不起作用”这样的问题应该包括一个明确的问题定义:出了什么问题,包括任何错误或错误的输出,以及重现问题所需的最低完整代码示例。检查并考虑编辑你的问题:)你可能应该包括错误的地方,以及你怀疑错误的地方。
int x = indexOfMaxInRange(A,i);