zoukankan      html  css  js  c++  java
  • 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 
         * 
         */
  • 相关阅读:
    java后端
    2017-12-11
    二叉树与分治法整理
    javaweb
    安装docker
    爬虫
    lintcode
    DEEPlearning
    剑指offer_by牛客网
    DFS
  • 原文地址:https://www.cnblogs.com/zhao-teng-ass/p/13231160.html
Copyright © 2011-2022 走看看