Java 如何解决此整数数组排序无法按预期工作的问题?
尝试过这样做,但仍然无法按升序排序。 此方法的目的是接收整数数组,并使用输入整数数组的值创建新的整数数组。然后对新创建的数组进行排序。但这种排序方法似乎不起作用Java 如何解决此整数数组排序无法按预期工作的问题?,java,arrays,Java,Arrays,尝试过这样做,但仍然无法按升序排序。 此方法的目的是接收整数数组,并使用输入整数数组的值创建新的整数数组。然后对新创建的数组进行排序。但这种排序方法似乎不起作用 private static int[] getSortAscend(int[] inputArray) { int sortArray[] = inputArray; int lngth = sortArray.length; for(int m = 0; m < lngth; m++) {
private static int[] getSortAscend(int[] inputArray) {
int sortArray[] = inputArray;
int lngth = sortArray.length;
for(int m = 0; m < lngth; m++) {
for(int p = m+1; p < lngth; p++) {
if(sortArray[m] > sortArray[p]) {
int temp = sortArray[m];
sortArray[m] = sortArray[p];
sortArray[p] = temp;
}
}
}
return sortArray;
}
private static int[]getSortAscend(int[]inputArray){
int-sortArray[]=输入阵列;
int lngth=sortArray.length;
对于(int m=0;msortArray[p]){
int temp=Sortaray[m];
sortArray[m]=sortArray[p];
Sortaray[p]=温度;
}
}
}
返回Sortaray;
}
这可能是由于您执行了int-sortArray[]=inputArray
,您的sortArray
指向输入的一个,由于您正在修改它,您的算法将无法工作(因为数字将不断变化)
试试这个:
private static int[] getSortAscend(int[] inputArray) {
int lngth = sortArray.length;
int sortArray[] = inputArray.clone();
for(int m = 0; m < lngth; m++) {
for(int p = m+1; p < lngth; p++) {
if(sortArray[m] > sortArray[p]) {
int temp = sortArray[m];
sortArray[m] = sortArray[p];
sortArray[p] = temp;
}
}
}
return sortArray;
}
private static int[]getSortAscend(int[]inputArray){
int lngth=sortArray.length;
int-sortArray[]=inputArray.clone();
对于(int m=0;msortArray[p]){
int temp=Sortaray[m];
sortArray[m]=sortArray[p];
Sortaray[p]=温度;
}
}
}
返回Sortaray;
}
当您设置int-sortArray[]=inputArray时代码>它不会创建一个新数组,而只是引用同一个数组。另外,您不需要单独获取数组的长度,只需调用sortArray.length
即可获取长度:
private static int[] getSortAscend(int[] inputArray) {
int sortArray[] = inputArray.clone();
for (int m = 0; m < sortArray.length; m++) {
for (int p = m + 1; p < sortArray.length; p++) {
if (sortArray[m] > sortArray[p]) {
int temp = sortArray[m];
sortArray[m] = sortArray[p];
sortArray[p] = temp;
}
}
}
return sortArray;
}
private static int[]getSortAscend(int[]inputArray){
int-sortArray[]=inputArray.clone();
for(int m=0;msortArray[p]){
int temp=Sortaray[m];
sortArray[m]=sortArray[p];
Sortaray[p]=温度;
}
}
}
返回Sortaray;
}
您能给出一个输入和输出示例吗?是否仅对数组进行排序?int-sortArray[]=inputArray代码>不创建新数组;它只是共享了一个对输入阵列的引用
。哎呀,几个小时以来,我一直在一遍又一遍地盯着并重新键入同一个东西,以确保我没有做错什么。原来是关于参考。由于答案,您必须将inputArray
项复制到sortedArray
。我明白了。必须使用for循环复制内容。