/**
 * 解決問題:設計將數組A[1][n]中所有奇數移到偶數之前的算法,不另外增加存儲空間,時間復雜度為o(n)
 * 
 * 
@author maodou Jan 11, 2010
 * 
 
*/

public class Test {

    
/**
     * 功能:實現將奇數排序到偶數前面。
     * 
     * 
@param arrays
     
*/

    
public static void sort(int[] arrays) {

        
//
        int len = arrays.length - 1, midVariable = 0;
        
for (int i = 0; i < len;) {

            
// 判斷當前值是否是偶數。是偶數,則從數據末尾給他找交換位置。
            
// 是奇數,則無操作,判斷下一個值。
            if ((arrays[i] % 2== 0{

                
// 判斷最后一個數是否是奇數,如果是,則將找到的偶數與之交換。
                
// 否則,向下移動一位,繼續比較交換,直到找到一個排序偶數后面的奇數位置。
                if (arrays[len] % 2 != 0{
                    midVariable 
= arrays[len];
                    arrays[len] 
= arrays[i];
                    arrays[i] 
= midVariable;
                    
//                    
                }

                len
--;
            }
 else {
                i
++;
            }


        }

    }


    
public static void main(String[] args) {

        
int[] arrays = new int[10];

        
// 隨機產生10個整數,并輸出。
        System.out.println("排序前:");
        
for (int i = 0; i < arrays.length; i++{

            arrays[i] 
= (int) (Math.random() * 10 + 1);
            System.out.print(arrays[i] 
+ "");
        }


        System.out.println();

        
// 排序
        sort(arrays);
        
// 輸出排序結果。
        System.out.println("排序后:");
        
for (int i = 0; i < arrays.length; i++{

            System.out.print(arrays[i] 
+ "");
        }

    }

}