奇數(shù)偶數(shù)排序

題目解釋:

長度為 n 的整數(shù)數(shù)組,對數(shù)組進(jìn)行整理,使得所有的奇數(shù)都在數(shù)組的前面,而所有的偶數(shù)都在數(shù)組的后面。例如數(shù)組為 {1,2,3,4,5,6}. 整理后為 {1,3,5,2,4,6}.


    //判斷前后兩個(gè)元素是否需要交換
    private static boolean isNeedSwap(int a, int b) {
        if (a%2 != 0 && b%2 == 0) {//奇數(shù)在前,偶數(shù)在后,不需要交換
            return false;
        }
        if (a%2 == 0 && b%2 != 0) {//偶數(shù)在前,奇數(shù)在后,需要交換
            return true;
        }
        
        /*
         * 如果聲明排序后原來的相對位置不能變,則 return a==b
         * 如果需要升序排列,則 return a<b
         * 如需要降序排列,則 return a>b
         */
        
        return a==b;//同奇同偶,順序不變
        
    }

    //交換函數(shù)的實(shí)現(xiàn)函數(shù)
    private static void Swap(int[] array, int a, int b) {
        int temp;
        temp = array[a];
        array[a] = array[b];
        array[b] = temp;
    }
    
    //利用插入排序來實(shí)現(xiàn),也可以用其他排序方法
    private static void InsertSort(int[] array) {
        for (int i = 1; i < array.length; i++) {
            for (int j = i; j > 0; j--) {
                if ( isNeedSwap(array[j-1], array[j]) ) {
                    Swap(array, j, j-1);
                }
            }
        }
    }
    
    public static void main(String[] args) {
        
        int[] a = {1,3,4,6,0,8,9,12,14,23};
        InsertSort(a);
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
    }
    
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容