【发布时间】:2018-11-18 16:29:52
【问题描述】:
只需要对数组中的奇数进行排序,但偶数必须保留在原位。
这是我的代码:
public static int[] sortArray(int[] array) {
int length = array.length;
int temp = 0;
for (int i = 0; i < length; i++) {
for (int j = 1; j < length - i; j++) {
if (j > 0 && array[j] % 2 == 0)continue;
if (array[j - 1] > array[j]){
temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
}
}
}
return array;
}
输入:new int[]{5, 3, 2, 8, 1, 4, 0}
输出:[1, 3, 5, 2, 8, 4, 0]
但我需要:[1, 3, 2, 8, 5, 4, 0]
如何跳过数组中的某些索引?
认为这应该与continue操作符连接,但我不知道该怎么做。
【问题讨论】:
-
当
array[j]是奇数时,您不能将其直接与前任交换,因为后者可能是偶数。您需要找到最近的前任,这很奇怪,以查看交换是否正常。
标签: java arrays algorithm sorting