Java實現數組轉置


public class DayE2 {

    public static void main(String[] args) {
        
        int [] datas=new int[]{1,2,3,4,5,6};
        int length=datas.length;
        System.out.println("源數組");
        //轉置前
        for (int i = 0; i < datas.length; i++) {
            System.out.print(datas[i]);
        }
        System.out.println("");
        
        //轉置中
        int number1=datas[0];
        int number2=datas[length-1];
        for (int i = 0; i <length/2; i++) {
            number1=datas[i];
            number2=datas[length-i-1];
            number1=number1^number2;
            number2=number1^number2;
            number1=number1^number2;
            datas[i]=number1;
            datas[length-i-1]=number2;
         }
        System.out.println("轉置數組");
        //轉置后
        for (int i = 0; i < datas.length; i++) {
            System.out.print(datas[i]);
        }
    }

}

結果截圖:

 

 

兩數交換時異或操作^的實現原理

/**
     * 異或^操作的原理:^表示的是異或,即兩個位比較相同則得0,不同則得1
     * a=10
     * b=20
     * 
     * a=a^b;
     * b=a^b;
     * a=a^b;
     * ^就是比較不同的位
     * 
     * 10的二進制是1010
     * 20的二進制是10100
     * 第一個a=a^b
     * a變成了11110,也就是30
     *  1010 a
     * 10100 b
     * 11110 30 a變成30
     * 
      * 第二個b=a^b b變成01010 10
     * 11110 a
     * 10100 b
     * 01010 b
     * 
     * 第三個b=a^b b變成10100 20
     * 11110 a
     * 01010 b
     * 10100 a 
     * 
     */

 


免責聲明!

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



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