基础思想:
相信作为编程小白的你,在遇见交换两个相同类型的元素的值时,第一反应就是申请一个临时空间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。
还有最重要的是对同一个数进行两次异或后值不变&#
交换两个元素值 -- 编程技巧
最新推荐文章于 2023-08-18 10:37:19 发布
本文探讨了编程中交换两个元素值的方法,从基础的使用临时变量到进阶的位运算技巧,尤其是利用异或运算实现无额外空间的交换。进一步介绍了C++中的模板函数,实现类型无关的通用交换功能,提高了代码复用性和效率。
摘要由CSDN通过智能技术生成