`
sheungxin
  • 浏览: 104071 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

值交换的三种方式

阅读更多
package com.demo.algorithm.sort;

public class NumberSwap {
	
	/**
	 * 通过中间值进行交换
	 * @param a
	 * @param b
	 */
	public static void swap1(int a,int b){
		int tmp=a;
		a=b;
		b=tmp;
		display(a, b);
	}
	
	/**
	 * 两数求和然后相减的方式进行交换,x、y过大有可能超出int的最大值
	 * @param a
	 * @param b
	 */
	public static void swap2(int a,int b){
		a=a+b;
		b=a-b;
		a=a-b;
		display(a, b);
	}
	
	/**
	 * 原理:一个数异或同一个数两次,结果还是那个数
	 * @param a
	 * @param b
	 */
	public static void swap3(int a,int b){
		a=a^b;
		b=a^b;//a^b^b
		a=a^b;//a^b^a^b^b
		display(a, b);
	}
	
	public static void display(int a,int b){
		System.out.println("a="+a+",b="+b);
	}

	public static void main(String[] args) {
		swap1(5, 8);
		swap2(5, 8);
		swap3(5, 8);
	}
}
分享到:
评论

相关推荐

    Linux 下用户空间与内核空间数据交换的方式

    包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs 和 relayfs 等,每种方式都有其特点和应用场景,开发者可以根据实际情况选择合适的方式来实现数据交换。

    交换两个变量的值,不使用第三个变量的方法及实现.pdf

    本文主要介绍了四种不使用第三个变量来交换两个变量值的方法,适用于C/C++编程语言。 1. **算术运算**: 这种方法基于算术运算,例如加减法或乘除法。通过巧妙地使用算术运算,可以在不借助额外变量的情况下完成...

    交换两个变量的值,不使用第三个变量的方法及实现.docx

    在编程中,交换两个变量的值是一个常见的任务,但有时我们可能希望避免使用第三个临时变量。本文探讨了几种不依赖额外变量实现交换的方法,主要针对C/C++编程语言。 1. **算术运算**: 算术运算方法利用加减法或乘...

    安卓中activity的三种intent跳转方式

    安卓中Activity的三种Intent跳转方式 在 Android 开发中,Intent 是一种基本的通信机制,用于在应用程序之间或应用程序内部进行数据交换和功能调用。Activity 是 Android 应用程序的基本组成部分,用于提供用户界面...

    Java 程序交换两个数字.docx

    Java 程序交换两个数字的方法主要有三种:使用第三个变量、不使用额外变量以及使用异或操作。下面分别详细介绍这三种方法。 1. 使用第三个变量交换值 这种方法是最直观的,也是大多数初学者首选的方式。它涉及到...

    程控交换实验、用户模块电路 主要完成BORSCHT七种功能,它由下列电路组成:

    2、从总体上初步熟悉两部电话单机用空分交换方式进行通话。 3、初步建立程控交换原理系统及电话通信的概念。 4、观察并记录一个正常呼叫的全过程。 5、观察并记录一个不正常呼叫的状态。 图1-6 呼叫识别电路...

    对Python中实现两个数的值交换的集中方法详解

    以上这篇对Python中实现两个数的值交换的集中方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:Python中的正则表达式与JSON数据交换格式Python...

    掌握内容热量传递的三种基本方式的概念特点及基本定律.pdf

    "掌握内容热量传递的三种基本方式的概念特点及基本定律" 本资源主要介绍了热传递的数值解法,包括有限差分法、有限元方法和边界元方法等。在 heat transfer 中,数值解法是指对物理问题进行离散求解的方法,通过...

    Python中的四种交换数值的方法解析

    交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的。 今天这个面试是问大家有几种办法来实现交换两个变量的值。 在没开始看具体答案前,你可以先想想看 下面分别来说说这几种方法 方法一 ...

    现代交换原理与通信网技术 (卞佳丽

    相同点:两者都可以对三种时分复用信号进行交换,只不过具体实现方式不同 14.T线有哪两种工作方式? (1}顺序写入,控制读出<抢出控制> (2)拦制与入,萬序读出<输入控制> 15.为什么说数字交换单元(D3)既能...

    WinCC与远程Linux进程之间数据交换的实现.pdf

    OPC接口是微软为了把Windows应用于控制系统而推出的新技术,表现在应用程序之间数据交换方式的标准化,是一种开放的标准。 然而,OPC是Windows的一种技术,所以只能实现两个Windows进程之间的数据交换。而在项目中...

    三次握手图解

    TCP(Transmission Control Protocol)是一种可靠的传输层协议,用于保证数据的可靠传输。在 TCP 中,三次握手是建立连接的过程,确保数据的可靠传输。本文将详细解释 TCP 三次握手的过程。 为什么需要三次握手 在...

    中国电信维护岗位认证交换专业教材.doc

    语音信号数字化:语音信号的数字化要经过抽样、量化和编码三个步骤。 抽样:抽样的功能是将时间上连续的模拟信号变为时间上离散的抽样值。抽样频率取值为8000Hz,即抽样周期为125μs。 量化:量化是指用有限个...

    计算机一级考试

    数据交换技术可以分为线路交换、报文交换和分组交换三种。线路交换是指通过网络中的节点在两个站点之间建立专用的通信线路进行数据传输的交换方式。报文交换是指将目的地址附加在报文中,然后让报文从节点到节点的...

    SEO培训:PR值基础算法和链式聚合推导.doc

    链式聚合爆破是指每个网页都有一个初始 PR 值,该值可以通过各种方式来提高。链式聚合爆破可以使得 PR 值传递,提高网站的重要性。 四、nofollow 和 robots.txt nofollow 是一种元标记,用于阻止搜索引擎从当前...

    计算机网络第五版谢希仁习题答案

    D对p求导后,令其值等于0,求得p=[(xh)/(k-1)]^0.5 1-12 因特网的两大组成部分(边缘部分与核心部分)的特点是什么?它们的工作方式 各有什么特点? 答:边缘部分:由各主机构成,用户直接进行信息处理和信息共享...

    九天交换链 2013.0515.rar

    3.最新加入了会员功能,用户发布链接需要注册用户才可以进行发布,会员可自行修改更新链接内容,新增:交换链接、购买链接、出售链接三个链接方式! 安装使用方法: 1.在支持ASP的服务器上解开本软件包。 2....

    计算机网络作业三及解答.doc

    下列关于三种数据交换方式的叙述,错误的是( )。 A.电路交换不提供差错控制功能 B.分组交换的分组有最大长度的限制 C.虚电路是面向连接的,它提供的是一种可靠的服务 D.在出错率很高的传输系统中,选择虚电

    提高交换机网络性能的几种方式探讨.docx

    本篇文章探讨了提高交换机网络性能的几种方式,以满足固网运营商在不断延伸和完善自己的网络规模的同时,为客户提供各种新业务,提供更具个性化、层次化的服务来提高 APRU 值和提高客户忠诚度。 一、网络优化 网络...

    9011三级管开关电路图大全

    事实并非如此,没有任何三极管可以完全短路而使VCE=0,大多数的小信号硅质三极管在饱和时,VCE(饱和)值约为0.2伏特,纵使是专为开关应用而设计的交换三极管,其VCE(饱和)值顶多也只能低到0.1伏特左右,而且...

Global site tag (gtag.js) - Google Analytics