实现两个变量的互换(不借助第三个变量)
一、问题简述
变量的互换常见于数组排序算法中,常见的做法是创建第三个变量进行互换,但是创建第三个变量仅作为过渡变量,这样不仅消耗系统内存,还使效率低下。这里提供一种不借助第三个变量的算法实现两个变量的互换。
二、代码实现
package net.csdn.exercises02;
import java.util.Scanner;
/** 不借助第三方变量实现两个变量的互换*/
public class VariableExchange {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个整数:");byte num1 = sc.nextByte();System.out.println("请输入第二个整数:");byte num2 = sc.nextByte();num1 = (byte)(num1 ^ num2);num2 = (byte)(num2 ^ num1);num1 = (byte)(num1 ^ num2);System.out.println("num1 = " + num1);System.out.println("num2 = " + num2);sc.close();}
}
三、结果分析
num1 = (byte)(num1 ^ num2);
num2 = (byte)(num2 ^ num1);
num1 = (byte)(num1 ^ num2);
实现两个变量的互换(不借助第三个变量)相关推荐
- 不借助第三个变量交换a,b两个变量值
有一道面试题,要求是 不借助第三个变量交换a,b两个变量值. 其有一种解法是通过 " 异或 " 达成目的,代码如下 #include<stdio.h>int main( ...
- JAVA不借助第三个变量实现两个变量交换的思考
网上存在三种方法: 1) 算术运算 简单来说,就是通过+和-运算来实现.代码如下: int a,b; a=10;b=12; a=b-a; //a=2;b=12 b=b-a; //a=2;b=10 a= ...
- 不借助第三个变量进行两个变量的换位输出
换位输出 public static void main(String[] args) { Scanner scan = new Scanner(System.in);// 创建扫描器 System. ...
- 不借助第三个变量交换两个整数
假设两个数x和y,则有: 方法1,算术运算(加减): x=x+y; //x暂存两数之和 y=x-y; //y为两数之和减去y,即原来的x x=x-y; //x为两数之和减去现在的y(原来的x), ...
- 交换两个变量的值不使用第三个变量(Java)
关于这个问题网上有好多答案,最近有人说这是个奇葩问题 个人测试了一把,如果是普通的数字的话,基本上没有问题 public static void main(String[] args) {int a ...
- php 实现两变量值对换,PHP互换两个变量值的方法(不用第三变量)
前言 今天在这里我们就来看看,在PHP中如何在不使用第三变量的情况下,达到交换两个变量值得目的.详细的解说见代码注释,下面来一起看看吧. 一.substr() && strlen() ...
- 编程题:两个数比较大小,之后用变量t互换。
编程题:两个数比较大小,之后用变量t互换. #include<stdio.h> void main() { float x,y,t; scanf("%f,%f",&am ...
- 如何在不引入第三个变量的情况下互换两个变量的值
如何在不引入第三个变量的情况下互换两个变量的值 算术运算 异或运算 解构 总结 例:x = 4:y = 5.如何在不引入第三个变量的情况下互换x与y的值? 算术运算 第一种方法是加法. x = x + ...
- C++不借助第三变量交换两个变量的值
C++不借助第三变量交换两个变量的值 源代码: #include<iostream> using namespace std; int main(){int x,y;cout<< ...
最新文章
- 实验七 访问列表配置
- (转载)Android手机开发总结
- Google准备开始新一年的大扩张
- logback日志pattern_@Slf4j 实现日志输入到外部文件
- python合并word表格单元格_python docx模块读取word表格遇到合并单元格时的处理
- [转载] python基础入门二
- 《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(5) -- 安全性...
- 数据3分钟丨Snowflake获“2021 DBMS”;OceanBase社区版3.1.2正式发布
- 聚类算法 距离矩阵_机器学习基础-层次聚类
- php sesssion,php sesssion原理
- 【java学习之路】(数据结构篇)001.数组
- “阿喀琉斯之踵”与“零缺陷”管理
- 简单明了理解交叉验证
- 生成和扫描二维码(ZXing库)
- 硬盘的读写速度如何计算
- websocket给指定客户端推送消息
- word2016如何插入题注并交叉引用
- 专知原创和整理了一些中英文机器学习从入门到精通的资料,和大家分享一下
- 卡尔曼滤波Kalman Filtering:介绍
- 容器类:QVector、QList、QSet、QMap使用
热门文章
- html中dfn标签,怎么时用html dfn标签
- 微软一站式示例代码库(中文版)2012-2-10版本, 新添加ASP.NET, Windows Form, VSX, Windows Shell, WPF等16个Sample
- win10下c语言哪个版本号,怎么查看我的电脑用的是win10的哪个版本?win10各版本之间的区别...
- 元宇宙热潮:缘起、影响与展望
- c语言合并两个顺序表算法,顺序表的两种合并操作(C语言)
- 2022-2028年中国踏步机行业市场运营态势及投资战略规划报告
- 南大通用GBase8s 常用SQL语句(150)
- 那些年踩过的坑-之《Android Q-高通平台UAC(USB Audio Class)调试记录》
- 【题解】【蓝桥杯】回文日期
- Wifi网络共享----Win8内置承载网络