【发布时间】:2018-11-20 22:36:39
【问题描述】:
/**
* @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;
}
这会继续返回错误。 我似乎找不到我的程序有什么问题。 该程序的目标是对数组进行从低到高的排序。
【问题讨论】:
-
您确实应该说出错误是什么,但它看起来像是您的 swapElement 方法中的索引超出范围错误,因为您使用数组中的值作为索引。另请注意,您的算法是 O(n^2),因为您从序列的开头对序列的每个元素进行迭代。
-
您好,欢迎来到 Stack Overflow。你得到了一些反对票 - 可能是因为像“为什么这段代码不工作”这样的问题应该包括一个明确的问题定义:出了什么问题,包括任何错误或错误输出,以及 重现问题所需的最少完整代码示例。查看how do I write a good question? page 并考虑编辑您的问题:)
-
您可能应该包括哪里出了问题,以及您怀疑错误在哪里