先给出一道面试题: 在main中定义两个Integer变量,通过swap方法交换值 碰到这道题,大家的第一反应就是这样写public static void swap(Integer a1, Integer b1) { int temp = a1; a1 = b1; b1 = temp; }这样写肯定是错误的。为什么呢,Integer不是引用
文章目录前言一、中间变量交换二、算数交换三、位异或运算交换3.1什么是位异或运算3.2异或的性质3.21 a ^ 0 = a3.22 a ^ a = 03.23 异或的运算满足交换律和结合律3.3利用异或交换两个数的值总结 前言在编程中我们经常需要对两个数的值进行交换,可以使用的方法也比较多,可能比较常见的是利用中间变量来进行交换,其实除了这种方法之外,还有别的更快的方法。一、中间变量交换这个应
/*时间:2013年5月27日23:28:43功能:调用函数交换两个数文件名:swap.cpp(c语言不可以:引用传递)*/# include "stdio.h"//值传递void Exchg1(int x, int y) //定义中的x,y变量被称为Exchg1函数的形式参数{int tmp;tmp = x;x = y;y = tmp;}//地址传递void Exchg2(i
原创 2013-08-09 23:37:47
2035阅读
1点赞
1:通过使用异或运算,可以快速将两个数的值交换:原理如下:     我们知道异或是相同取0相反取1,如:0101异或1101的结果是1000。如对两个数,经过三次进行异或运行后的结果是这两个数的值互换。如 a =       0101, b=1101,则进行的操作如下:           &nbs
转载 2023-09-11 19:51:22
59阅读
最近在学C++,由于大学的时候没有好好读书,所以学C++的时候感觉把记忆中很混淆的概念梳理了一下,再对比着自己现在工作用的Java,发现二者有很多相似和不同的地方,自己也不是一个爱写博客的人, 所以也就想到什么写点什么吧一、C++ 和 Java 共通的交换方法这里只介绍交换数据的方法,这个在C++ 和 Java 中操作的逻辑都是一样的,无外乎最常见的三种,使用中间变量,使用加法减法操作,使用位运算
#include <stdio.h> void swap(int*p1, int*p2) { int tmp = *p1; *p1 = *p2; *p2 = tmp; } void main() { int p1 = 1; int p2&
原创 2015-12-12 17:04:19
436阅读
对于交换问题有以下三种方法,对此我用JAVA代码简单介绍一下1.利用第三个变量交换数值,简单的方法class TestEV //创建一个类 { public static void main(String[] args) { int x =5,y=10; //定义两个变量 int temp = x;    //定义第三临时变量temp并提取x值
转载 2023-07-12 14:33:49
33阅读
最开始先用的定义一个变量,通过变量来交换函数后来可以不引入第三个变量来交换数值tmp=a; a=b; b=tmp;//最简单方法 //a=0000 0010 //b=0000 0101 //a=a^b=0000 0111 //b=a^b=0000 0010 //a=a^b=0000 0101 a=a^b; b=a^b; a=a^b;//通过异或
原创 2015-11-01 22:39:31
647阅读
在不用临时变量的情况下交换两个数
原创 2019-04-03 21:28:00
142阅读
交换两个数
原创 2022-04-26 01:38:33
72阅读
交换两个数组的元素首尾交换方法一:将两个数组的对应元素,一一交换一遍就可以了,但是这两个数组的长度必须是一样长的,否则就没法交换了。 package ChangeTwoArray;public class ChangeTwoArray { public void ChangeTwoArray(int[] a,int[] b){ //先有两个数组 //方法一
转载 2023-05-25 10:43:50
130阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
转载 精选 2014-06-04 12:46:08
197阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
转载 精选 2014-06-04 12:46:13
126阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
转载 精选 2014-06-04 12:43:48
160阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
转载 精选 2014-06-04 12:44:21
208阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
转载 精选 2014-06-04 12:54:41
213阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了 但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
原创 2014-05-07 13:13:26
363阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
转载 精选 2014-06-04 12:43:57
170阅读
大家其实知道可以用异或来实现交换  学过C的人看如上的程序  一看以为肯定交换了但是注意 C对表达式的计算顺序和Java是不同的  java是从左往右的  所以不对简单修改就可以了:交换个数的方法一、使用中间量  (这个就不多说了)二、使用异或(如上)三、使用加减法这个不需要解释吧
原创 2014-06-04 12:46:38
162阅读
/** * * @Title: test_exchange * @Description: 该方法的主要作用:交换两个数 * @param 设定文件 * @return 返回类型:void * @throws */ @Test public void test_exchange(){ int num1 = 10; int num2 = 20;
原创 2017-08-27 22:18:30
671阅读
  • 1
  • 2
  • 3
  • 4
  • 5