java - 如何解决这个整数数组排序不能按预期工作?
问题描述
尝试这样做,但仍然没有按升序排序。此方法的目的是接收一个整数数组并使用输入整数数组的值创建一个新的整数数组。然后对新创建的数组进行排序。但似乎这种排序方法不起作用。
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;
}
解决方案
This is probably due to you doing int sortArray[] = inputArray;
, your sortArray
points to the input one, and since you're modifying it, your algorithm will not work (since numbers will keep changing).
Try this:
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;
}
推荐阅读
- javascript - 查询选择器,通过它的类和内容选择一个元素
- server - 无法将 SSL 配置为 httpd-vhosts.conf
- laravel - Laravel: 方法 ...Controller::show 不存在
- android - 如何修复 ionic 3 中的 Typescript 错误?索引.d.ts
- xcode - @Published ObservedObjects SwiftUI 更新未发生
- c++ - 如何从 _clicked() 事件中发出另一个实例的信号?
- google-cloud-firestore - Firestore简单的collectionGroup使函数超时
- git - 为 Git Bash 配置代理凭据,但面临特殊字符问题
- reactjs - 使用 Docker-Compose 为 React 和 Flask 配置 Nginx
- java - 方法调用失败 JAX-RS / Wildfly / Java SDK13 带拦截器