Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 代码为';t排序权_Java_Sorting - Fatal编程技术网

Java 代码为';t排序权

Java 代码为';t排序权,java,sorting,Java,Sorting,所以,我有我的代码,但我的数字没有排序。有什么我遗漏的吗 我的排序代码,没有其他方法,如打印等: public static int[] swapElement (int [] x, int index1, int index2) { int t = x[index1]; x[index1] = x[index2]; x[index2] = t; return x; } public static int[]

所以,我有我的代码,但我的数字没有排序。有什么我遗漏的吗

我的排序代码,没有其他方法,如打印等:

 public static int[] swapElement (int [] x, int index1, int index2) {
        int t = x[index1];
        x[index1] = x[index2];
        x[index2] = t; 
        return x;
    }
      public static int[] sortArray (int [] x) {
        int index = 0;
        int i=0;

        int[] toSort= new int[x.length];
       for(int m=0;m<x.length;m++){
        index = indexOfMaxInRange(x);
        toSort=swapElement(x,i,index);
        i++;
       }

      return toSort;
    }
      public static int indexOfMaxInRange (int[] x) {
        int max = 0;
        int i=0;
        int maxLocation = 0;
        while(i < x.length) {
            if (x[i] > max) {
                max = x[i];
                maxLocation= i;

            }
             i++;
        }       
public static int[]swaplement(int[]x,int index1,int index2){
int t=x[index1];
x[index1]=x[index2];
x[index2]=t;
返回x;
}
公共静态int[]sortArray(int[]x){
int指数=0;
int i=0;
int[]toSort=新int[x.length];
对于(int m=0;m max){
max=x[i];
maxLocation=i;
}
i++;
}       
注意更改:添加的参数(搜索的第一个索引-
0
将意味着像以前一样搜索整个数组),并且
i
被初始化为这个新参数


(我还将
max
的初始值更改为
Integer.MIN\u value
,以使其即使最大值为负值也能工作,但这不应涉及您的原始问题)

并且一切正常,显然不是这样。使用调试器找出代码与预期行为不同的地方。
swaplement
可能无效,因为传递的
toSort
参数将被更改。因此,您建议我如何执行此操作?只需将其较低的范围添加到当前最大值?@NickGatti不,不是。这里没有一个较低的范围,只有数组。那么我该如何添加它呢?我完全迷路了。@NickGatti,我会在一分钟后把它附加到我的答案中。我试过这个,但仍然无法排序。我在sortArray中用(x,0)调用indexofMaxInRange。
for(int m=0;m<x.length;m++){
    index = indexOfMaxInRange(x);
    toSort=swapElement(x,i,index);
    i++;
}
public static int indexOfMaxInRange (int[] x, int firstIndex) {
    int max = Integer.MIN_VALUE;
    int i=firstIndex; //note! initialize to min instead of 0
    int maxLocation = firstIndex;
    while(i < x.length) {
        if (x[i] > max) {
            max = x[i];
            maxLocation= i;

        }
        i++;
    }
    return maxLocation;
}