Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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 此阵列工作不正常的原因_Java_Arrays_Sorting_Methods - Fatal编程技术网

Java 此阵列工作不正常的原因

Java 此阵列工作不正常的原因,java,arrays,sorting,methods,Java,Arrays,Sorting,Methods,我将在这个方法中按整数降序排列 package sortarray; public class start { public static void main(String[] args) { int [] numb={10,12,8,6,2}; sortarray(numb); } public static void sortarray(int [] input){ int max=input[0];

我将在这个方法中按整数降序排列

package sortarray;

public class start {

    public static void main(String[] args) {

        int [] numb={10,12,8,6,2};

        sortarray(numb);
    }

    public static void sortarray(int [] input){

        int max=input[0];

        int [] sortmax=input;//i don't know how this array sortmax initialized first

        for (int i=0;i<input.length;i++)
            if(max<input[i]){
                max=input[i];

                sortmax[i]=max;//this array is not work 
            }

        for (int j=0;j<sortmax.length;j++)
            System.out.print(" "+sortmax[j]);
    }           

}
package-sortarray;
公开课开始{
公共静态void main(字符串[]args){
int[]numb={10,12,8,6,2};
索塔雷(麻木);
}
公共静态void sortarray(int[]输入){
int max=输入[0];
int[]sortmax=input;//我不知道这个数组sortmax是如何初始化的

对于(int i=0;i我知道你想保留马克斯的一些历史

sortmax
只是引用您的输入数组,您在
sortmax
上执行的所有操作都是在
input
上执行的。您需要执行以下操作:

int[]sortmax=new int[input.length];


int[]sortmax=input;

不同,您可以始终使用
Arrays.sort()
进行此操作,但如果目标是学习排序,则强力(对于大向量,速度较慢)排序器可能如下所示:

public void sort(int[] array){
   int[] tempArray = new int[array.length]
   int max;
   int index;
   for(int k = 0; k < array.length; k++){
     for(int i = 0; i < array.length; i++){
       if(max < array[i]){
         max = array[i];
         index = i;
        }
     }
     tempArray[k] = array[index];
     array[index] = Integer.MIN_VALUE;
   }
   array = tempArray;
}
public void排序(int[]数组){
int[]tempArray=new int[array.length]
int max;
整数指数;
for(int k=0;k