【发布时间】:2018-01-24 15:11:20
【问题描述】:
我希望对数组中的一些元素进行排序,但排除其他元素。
举个简单的例子,一个包含整数的数组,我想对奇数进行排序,但将偶数留在原处。
到目前为止,我有以下内容:
public class MyClass {
public static void main(String args[]) {
int temp;
int array[] = {5, 3, 2, 8, 1, 4};
int[] sortedArray = new int[array.length];
for (int j = 0; j < array.length - 1; j++) {
for (int x = 0; x < array.length - 1; x++) {
if (array[x] > array[x + 1] && array[x] % 2 != 0 && array[x + 1] % 2 !=0) {
temp = array[x];
array[x] = array[x + 1];
array[x + 1] = temp;
sortedArray = array;
}
}
}
for (int i: sortedArray) {
System.out.println(i);
}
}
}
给定整数数组: 5, 3, 2, 8, 1, 4
代码输出: 3, 5, 2, 8, 1, 4
预期输出: 1、3、2、8、5、4
无法完全弄清楚原始数组中较低的奇数出现在偶数之前的场景所需的逻辑。
【问题讨论】:
-
请给出您的预期输出..
-
1, 3, 2, 8, 5, 4 - 奇数排序,偶数保持原位。
-
我很难想出这种算法的用例。
-
@corsiKa 不失败的课程将是我期望的一个原因。
标签: java arrays sorting lambda