數組:調整一個數組,把奇數放在前半部分,偶數在後半部分

這個筆試題,我在網上找了答案,但是我上機試了一下,發現網上的答案有錯誤,所以我又調試了一下,先將題目展示一下,之後說說我的思路,最後奉上我的代碼。
題目爲:調整一個數組,把奇數放在前半部分,偶數在後半部分。
思路爲:從前面開始找偶數,從後面開始找奇數,用begin和end分別做標記,找到之後進行交換,但是在交換之前一定要判斷begin是否小於end,否則會出現錯誤。
代碼如下:
/**
* 調整一個數組,把奇數放在前半部分,偶數在後半部分
* 思路:從前面開始找偶數,從後面開始找奇數
* 0 1 2 3 4 5
* 1, 2, 3, 4, 5, 6
*/
public static int[]a =new int[]{1,2,3,4,5,6};
public static void main(String[] args) {
RecordOddEven();
display();
}
/**
* 思路是:從前面開始掃描,從前面開始找奇數,從後面開始找偶數,如果找到了就交換,記住交換之前也一定要記住這個條件:begin<end
*/
public static void display(){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
public static void RecordOddEven(){
int begin=0;
int end=a.length-1;
while(begin<end){
while(!isEven(a[begin])){
begin++;
}
while(isEven(a[end])){
end--;
}
if(begin<end){
int temp=a[begin];
a[begin]=a[end];
a[end]=temp;


begin++;
end--;
}
}


}
//判斷是否是偶數
public static boolean isEven(int b){
return b%2==0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章