交换两个元素值 -- 编程技巧

本文探讨了编程中交换两个元素值的方法,从基础的使用临时变量到进阶的位运算技巧,尤其是利用异或运算实现无额外空间的交换。进一步介绍了C++中的模板函数,实现类型无关的通用交换功能,提高了代码复用性和效率。
摘要由CSDN通过智能技术生成

基础思想:

相信作为编程小白的你,在遇见交换两个相同类型的元素的值时,第一反应就是申请一个临时空间temp来保存某个元素值来进行两个元素之间的值交换,就像如下代码:

void swapr(int &a, int &b) {
	int temp = a;
	a = b;
	b = temp;
}

上面的函数真是简单易懂,我们这些小白刚刚学习编程的时候就是用这种方式。但是当我们学习了时空开销后,这个思想也要与时俱进的更新一下了(#^.^#)。

进阶思想:

那要怎么减小时空开销喃???                     像临时空间temp可不可以不申请,节约空间。
那时间消耗喃?比赋值运算更快的是什么?   是位运算,因为程序在计算机中是二进制形式运行,所以位运算是最快的。

我们知道位运算中的异或运算规则是:0 ^ 0 = 0、0 ^ 1 = 1、1 ^ 0 = 1、1 ^ 1 = 0。即相同为0,相异为1
还有最重要的是对同一个数进行两次异或后值不变&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值