【Java】使用位运算完成数组中两个变量交换位置
1 /**
2 *
3 */
4 package com.raliable.chapter_0;
5 /**
6 * @author : Administrator
7 * @date :2022年4月14日 下午4:54:04
8 *
9 */
10 /**
11 * @author Administrator
12 *
13 */
14 public class TestSwap {
15
16 /**
17 * @param args
18 */
19 public static void main(String[] args) {
20 // TODO 自动生成的方法存根
21 int num_1=5;
22 int num_2=7;
23 TestSwap.swap(num_1,num_2);
24 }
25 public static void swap(int a, int b) {
26 a = a^b; //a=5^7 b=7
27 b = a^b; //a=5^7 b=5^7^7 (5^0)(5) 现在b已经是5了
28 a = a^b; //a=5^7^5 (5^5^7)(0^7)(7) 现在a是7 交换完毕!
29 /*
30 * 异或运算:相同为0,不同为1 可以理解为:无进位相加!
31 * 比如:1 0 1 1 0 ^
32 * 0 0 1 1 0
33 * 等于:1 0 0 0 0
34 * 异或运算满足交换律和结合律
35 * 0^N=N
36 * N^N=0
37 */
38 System.out.println("a:"+a+" b:"+b);
39
40 }
41 }

【Java】使用位运算完成数组中两个变量交换位置的更多相关文章
- 交换数组中两个元素的位置,元素包括key和value 一维数组
/*author: yangyu@sina.cndescription: 交换数组中两个元素的位置,元素包括key和value,具体用法见下面的例子*/$arr = array(11=>'a', ...
- leetcode Single Number II - 位运算处理数组中的数
题目描述: 给定一个包含n个整数的数组,除了一个数出现一次外所有的整数均出现三次,找出这个只出现一次的整数. 题目来源: http://oj.leetcode.com/problems/single- ...
- Java实现 LeetCode 421 数组中两个数的最大异或值
421. 数组中两个数的最大异或值 给定一个非空数组,数组中元素为 a0, a1, a2, - , an-1,其中 0 ≤ ai < 231 . 找到 ai 和aj 最大的异或 (XOR) 运算 ...
- Java泛型01--任意数组中两元素交换
package com.zl.generic; /** * 交换“任意”数组 中两个元素 */ public class GenericSwapArray { public static void m ...
- Leetcode 421.数组中两数的最大异或值
数组中两数的最大异或值 给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 . 找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ...
- LeetCode 421. 数组中两个数的最大异或值(Maximum XOR of Two Numbers in an Array) 71
421. 数组中两个数的最大异或值 421. Maximum XOR of Two Numbers in an Array 题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, - , a ...
- 2016网易实习生编程题:数组中两个数的和等于sum
题目 找出数组中两个数的和等于sum的这两个数 解题 这个题目做过很多次了,利用HashMap,key为 sum-A[i] value为 i 当 加入HashMap时候A[i] 已经存在map中,ge ...
- 【ShareCode】不错的技术文章 -- 如何使用异或(XOR)运算找到数组中缺失的数?
如何使用异或(XOR)运算找到数组中缺失的数? 今天给大家分享一篇关于使用XOR(异或)运算找到数组中缺失的数的问题. 在一次Javascript面试中,有这么一个问题: 假设有一个由0到99(包含9 ...
- 求数组中两两相加等于20的组合(Python实现)
题目 求数组中两两相加等于20的组合. 例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20. 解析 分为两个步骤: 先采用堆排 ...
- 两个变量交换的四种方法(Java) 七种方法(JS)
两个变量交换的四种方法(Java) 对于两种变量的交换,我发现四种方法,下面我用Java来演示一下. 1.利用第三个变量交换数值,简单的方法. (代码演示一下) 1 class TestEV 2 ...
随机推荐
- C++ 多线程的错误和如何避免(12)
std::async 在简单的 IO 上比 std::thread 更有优势 前提:如果我们只需要一些异步执行的代码,这样不会阻塞主线程的执行,最好的办法是使用 std::async 来执行这些代码. ...
- Golang Web 框架 Gin 基础学习教程集合目录
Gin Web 框架基础学习系列目录 01-quickstart 02-parameter 03-route 04-middleware 05-log 06-logrus 07-bind 08-val ...
- MPG线程模型简介
概述 go语言中的MPG线程模型对两级线程模型进行了一定程度的改进,使它能够更加灵活的进行线程之间的调度. 它由3个主要模块构成,如下图: MPG的3个主要模块以及功能,我们通过下表所示. 模块 功能 ...
- django学习第三天---django模板渲染,过滤器,反向循环 reversed,自定义标签和过滤器,模板继承
django模板渲染 模板渲染,模板指的就是html文件,渲染指的就是字符串替换,将模板中的特殊符号替换成相关数据 基本语法 {{ 变量 }} {% 逻辑 %} 变量使用 示例 Views.py文件 ...
- 【Filament】绘制圆形
1 前言 Filament环境搭建中介绍了 Filament 的 Windows 和 Android 环境搭,绘制三角形中介绍了绘制纯色和彩色三角形,绘制矩形中介绍了绘制纯色和彩色矩形,本文将使用 ...
- SpringBoot与Thymeleaf入门级操作
使用Thymeleaf 三大理由: 简洁漂亮 容易理解 完美支持HTML5 使用浏览器直接打开页面 不新增标签 只需增强属性 学习目标 快速掌握Thymeleaf的基本使用:五大基础语法,常用内置对象 ...
- 【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常
问题描述 在使用Terraform创建Function App 后,部署函数时候遇见 ServiceUnavailable (Bad Request -- Encountered an error ( ...
- 【Azure 应用服务】Azure Function (PowerShell) 执行时报错 "out of memory"
问题描述 在Azure Function App服务中,创建一个PowerShell脚本的函数,遇见了OOM(Out Of Memory)的异常报错: 2022-01-10T07:44:37 Welc ...
- linux虚拟机初始配置
1- CentOS7配置静态IP地址: iface="网络接口名"cd /etc/sysconfig/network-scripts/; sed -i 's/^/#/' ifcfg ...
- linux的简单使用
了解Linux的简单使用 Linux的安装 下载Linux Ubuntu版本和虚拟机VMware软件. 我已经提前下载好了,下载好的文件分享出来bd 这个是文件夹内的VMWare软件的注册码,安装完成 ...