package offer;
import java.util.ArrayList;
/**
* @author Liuyang
*
*/
public class T13_reOrderArray {
//調整數組順序使奇數位於偶數前面
//直接插入排序法
public void reOrderArray_myself(int [] array) {
int temp = 0;
int flag = 0;
for(int i=0;i<array.length;i++){
if(array[i]%2==1){
for(int j=i;j>flag;j--){
temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
}
flag++;
}
}
}
//克隆一個數組給老數組賦值
public void reOrderArray(int[] array) {
int oddNum = 0;
for(int value: array) {
if(value % 2 == 1) {
oddNum++;
}
}
int[] copyArray = array.clone();//克隆數組,對原數組賦值
int i = 0, j = oddNum;//j爲偶數開始存儲的位置
for(int num : copyArray) {
if(num % 2 == 1) {
array[i] = num;
i ++;
} else {
array[j++] = num;
j ++;
}
}
}
//用兩個list實現
public void reOrderArray_1(int[] array) {
ArrayList<Integer> odd = new ArrayList<>();
ArrayList<Integer> even = new ArrayList<>();
for(int i = 0; i < array.length; i ++) {
if(array[i] % 2 == 0) {
even.add(array[i]);
} else {
odd.add(array[i]);
}
}
odd.addAll(even);
for(int i = 0; i < array.length; i ++) {
array[i] = odd.get(i);
}
}
}
刷題筆記:13.調整數組順序使奇數位於偶數前面
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.