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