劍指offer編程題Java實現——面試題14調整數組順序使奇數位於偶數之前


題目:

輸入一個整數數組,實現一個函數來調整該數組中數組的順序,使得所有的奇數位於數組的前半部分,偶數位於數組的后半部分。

解題思路:數組中維護兩個指針,第一個指針初始化時候指向數組頭部,第二個指針初始化時候指向數組尾部,第一個指針指向的數字總是偶數,第二個指針指向的數字總是奇數,如果第一個指針在第二個指針之前,則交換兩指針指向的元素。

 1 package Solution;
 2 
 3 /**
 4  * 劍指offer面試題14:調整數組順序是奇數位於偶數前面
 5  * 題目:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於偶數的前半部分,所有偶數位於數組的后半部分
 6  * @author GL
 7  *
 8  */
 9 public class No14ReorderArray {
10 
11     public static void main(String[] args) {
12         int[] array={1,2,3,4,5,6,7,8,9};
13         reorderOddEven(array);
14         for(int i=0;i<array.length;i++){
15             System.out.print(array[i]+",");
16         }
17 
18     }
19     
20     public static void reorderOddEven(int[] array){
21         if(array==null||array.length<=0)
22             throw new RuntimeException("invalid array");
23         int begin=0;
24         int end=array.length-1;
25         while(begin<end){
26             while(begin<end&&(array[begin]&1)!=0)
27                 begin++;
28             while(begin<end&&(array[end]&1)==0)
29                 end--;
30             if(begin<end){
31                 int temp=array[end];
32                 array[end]=array[begin];
33                 array[begin]=temp;
34             }
35         }
36     }
37 
38 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM