zoukankan      html  css  js  c++  java
  • Java 交换值算法 不用中间变量,换运算

    /**
     * 交换值演示,演示了空间换时间,和时间换空间的简单例子.
     * 
     * @author weep
     * 
     */
    public class SwapAB {
    	public static void main(String[] args) {
    		// 两种值交换的方式,用中间变量空间复杂度高于不用中间变量,但时间复杂度要低于不用中间变量.
    
    		// 常规写两个值的交换
    		int a = 100;
    		int b = 200;
    		System.out.println("初始值 a=100 b=200");
    		// 中间变量
    		int c;
    
    		// 复制给中间变量,临时存
    		c = a;
    		// 把b的值赋给a.
    		a = b;
    		// 把c中存的a的初始值赋给,至此完成了常规的值交换
    		b = c;
    		System.out.println("a = " + a + ", b = " + b);
    		// 不用中间变量的写法
    		a = a + b;
    		b = a - b;
    		a = a - b;
    
    		System.out.println("a = " + a + ", b = " + b);
    
    		// 第二种不用中间变量,换运算,效率比加法高点
    		a = a ^ b;
    		b = a ^ b;
    		a = a ^ b;
    
    		System.out.println("a = " + a + ", b = " + b);
    
    	}
    }

  • 相关阅读:
    git stash回退
    基于git tag快速修复
    Go语言开发规范
    defer实现原理
    string数据结构
    关于const iota
    struct
    map数据结构底层详解
    go 函数进阶
    go 内存分配原理
  • 原文地址:https://www.cnblogs.com/aikongmeng/p/3697436.html
Copyright © 2011-2022 走看看