已知現有兩個常量數組,請將他們變爲一個有序的數組

package com.touchmain;

import java.util.Arrays;

public class Test {   

    /**
     *
       已知現有兩個常量數組,請將他們變爲一個有序的數組
     * @param args
     */


    public static void main(String[] args){

        int [] arrA  = {1,4,7,2,9};
        int [] arrB  = {3,5,8,2};
        int [] arrC = new int[arrA.length+arrB.length];
        //輸出定義好的A、B數組
        System.out.println(Arrays.toString(arrA));
        System.out.println(Arrays.toString(arrB));
        //A數組加入C數組中
        for (int i = 0; i < arrA.length ; i++) {
            arrC[i] = arrA[i];
        }
        //B數組加入C數組中,開始位置是A數組的結束位置長度。
        for (int j = 0; j <arrB.length ; j++) {
            arrC[j+arrA.length] = arrB[j];
        }

        //系統工具合併數組
        //System.arraycopy(arrA,0,arrC,0,arrA.length);
        //System.arraycopy(arrB,0,arrC,arrA.length,arrB.length);
        //輸出拼接好的C數組
        System.out.println(Arrays.toString(arrC));
        //比較數組中元素大小,進行排序。
        compare(arrC);
        //輸出比較排序後的C數組
        System.out.println(Arrays.toString(arrC));

    }
    
    
    /***
     *  循環比較數組中的每個元素,前面比後面的大則交換位置,已經比較過的最後元素不用比較
     **/
    private static void compare(int [] arrC){

        for (int i = 0; i < arrC.length ; i++) {
            for (int k = 0; k < arrC.length - i; k++) {
                if (k == arrC.length -1 - i){
                    break;
                }
                if(arrC[k] >= arrC[k+1]){
                    int value = arrC[k];
                    arrC[k] = arrC[k+1];
                    arrC[k+1] =value;
                }
            }
        }
    }

  
}
結果輸出:

[1, 4, 7, 2, 9]
[3, 5, 8, 2]
[1, 4, 7, 2, 9, 3, 5, 8, 2]
[1, 2, 2, 3, 4, 5, 7, 8, 9]

  

    /***
     * 一次遍歷的方式,將數組內的數字(重複)進行有序排序
     * @param shuzu
     */
    public static void oneForCompare(int [] shuzu){
        int i;
        int temps;
        for (i = 0; i< shuzu.length; i++)
        {
            count++;

            if (i == shuzu.length -1){
                break;
            }

            temps = shuzu[i];
            if (shuzu[i+1]<shuzu[i])
            {
                shuzu[i] = shuzu[i+1];
                shuzu[i+1] = temps;
                i = -1;
            }
        }

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章