有一个整数数组a,设计一个算法将所有偶数位的元素移动到所有基数位的元素前面,要求他们的相对次序不变。例如,a={1,2,3,4,5,6,7,8},移动后,a={2,4,6,8,1,3,5,7}。
package kyq;
import java.util.Arrays;
public class Solution {
public void Array(int [] array) {
int length = array.length;
for(int i = 0; i < length; i ++){
for(int j = length - 1; j > 0; j --){
// 第j个能余为 0且第 j-1 余为 1 交换 j 和 j-1 的顺序
if(array[j] % 2 == 0 && array[j - 1] % 2 == 1){
int temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
}
}
}
}
public static void main(String[] args) {
int [] array = {1,2,3,4,5,6,7,8};
Solution solution = new Solution();
solution.Array(array);
System.out.print(Arrays.toString(array));
}
}