【发布时间】:2017-05-14 18:39:25
【问题描述】:
这是原来的问题
创建一个方法int[] sort(int[] arr),返回一个新的排序数组(递增顺序),包含与 arr 相同的整数集。数组 arr 应保持不变。
这是方法:
private static int[] sort(int[] arr){
int i,z=0,temp,y,x;
int[] secondArray = new int [arr.length];
for (i=0; i<arr.length; i++){
secondArray[z] = arr[i];
}
for (y=0; y < secondArray.length; y++) {
for (x = 0; x<secondArray.length; x++){
if (secondArray[y] < secondArray[x]){
temp = secondArray[y];
secondArray[y] = secondArray[x];
secondArray[x] = temp;
}
}
}
return secondArray;
}
输入:int[] n = {1,4,5,343,45,67};
输出:1 4 5 343 45 67
对数组arr进行排序很容易,但问题需要保持arr不变。所以我尝试创建一个新数组,并对新数组进行排序,但它不起作用。
请帮忙。
【问题讨论】:
-
必须手动排序吗?
-
仔细重新读取复制数组的循环。
-
此算法不能与并行数组一起使用,您可以先复制数组或使用其他算法。
-
一个提示:在需要时不要声明局部变量。据我所知,这个简单的做法应该可以捕捉到代码中的错误。此外,还可以编写更具可读性的代码。
-
另外我怀疑你根本不需要变量
z(在整个方法中都是0,永远不会改变)。
标签: java arrays sorting methods