一种节省空间的交换变量的基本算法

一种节省空间的交换变量的基本算法,一个很简单的算法

因为其中没有引入temp变量,所以可以节省空间

代码如下:

一种节省空间的交换变量的基本算法

时间: 2024-10-26 10:07:19

一种节省空间的交换变量的基本算法的相关文章

不适用临时空间,交换变量a和b

方法1: a = a + b; b = a - b; a = a - b; 方法2: a ^= b; b ^= a; a ^= b; 方法3: a = a * b; b = a / b; a = a / b; 不适用临时空间,交换变量a和b

c#交换变量的几种方法(笔试之一)

大家很熟悉知道,交换变量经常的使用的一种方法是使用第三个变量,也符合正常人的思维逻辑,但是还有其他的一些方法来实现,但是有点“偏门”,记住就好了.下面就列举这几种方法. 第一种方法,会用到参数的方法再来修稿. 1 using System; 2 namespace Exercise 3 { 4 class Program 5 { 6 private static void Main(string[] args) 7 { 8 int num1 = 10; 9 int num2 = 5; 10 in

KEIL中三种编译模式以及对变量空间的影响

三条编译模式控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下. SMALL:所有变量都被定义在8051单片机的片内RAM中,对这种变量的访问速度最快.另外,堆栈也必须位于片内RAM中,而堆栈的长度是很重要的,实际栈长取决与不同函数的嵌套深度.采用SMALL编译模式与定义变量时指定data存储器类型具有相同效果. COMPACT:所有变量被定义在分页寻址的片外XRAM中,每一页片外XRAM的长度为256字节:即所有变量存储在片外XRAM的某一页中.这时对变量的访问是

不使用第三方变量交换变量遇到的思考

记一次在不使用第三方变量的情况下交换变量遇到的思考 今天百度了一下 在不使用第三方变量的情况下交换变量的几种方法 对其中的一种交换变量的方法特别感兴趣,看起来比较简单,但是琢磨了半天没有想明白他是按什么顺序去运行的 : 1 public static void main(String[] args) { 2 int a = 1000,b=2000; 3 4 a= b + ( b = a ) * 0; 5 6 System.out.println("a:" + a + " b:

php的几种常用的数据交换格式

序列化(serialize).变量.xml.json是PHP常见的4种文本数据交换形式.   一.序列化与反序列化     使用serialize与unserialize将可以将任何数据类型(除了资源),格式成文本数据格式,是php内置的,使用最方便,可以将数据.对象等保存与恢复再用.     好处:使用方便,支持好.     不好:没有通用性只有php能够支持,文本化体积大.     可能:速度可能会慢. 二.变量     将数据写成标准的PHP赋值语句存放在文本文件中,在程序执行过程中包含进

C++ Primer 学习笔记_105_特殊工具与技术 --联合:节省空间的类

特殊工具与技术 --联合:节省空间的类 联合是一种特殊的类.一个 union 对象可以有多个数据成员,但在任何时刻,只有一个成员可以有值.当将一个值赋给 union 对象的一个成员的时候,其他所有都变为未定义的. 为 union 对象分配的存储的量至少与包含其最大数据成员的一样多.联合提供了便利的办法表示一组相互排斥的值,这些值可以是不同类型的. 1.定义联合 作为例子,我们可能有一个处理不同各类数值或字符数据的过程.该过程可以定义一个 union 来保存这些值: union ToKenValu

Redis节省空间

节省空间 使用较短的键名 内部编码的优化.每种类型可以使用不同的数据结构来实现,通过配置文件可以配置在某些条件来触发使用不同的数据结构. 如果发现错误,请轻拍,欢迎留言交流,谢谢

提高matlab运行速度和节省空间的心得

提高matlab运行速度和节省空间的心得 首先推荐使用matlab 2006a版本,该版本优点很多(不过有一个小bug,就是通过GUI自动生成的m文件居然一大堆warning,希望在已经发布了的2006b版本中有改善),其中对于编程人员来说比较突出的一个就是编辑窗口的自动语法检查功能.这可以在一定程度上避免使用没有被定义或赋值的变量,另外,也可以帮助你优化代码,[例1]的[方案3]就是因为我看到matlab编辑窗口的warning而得到的启发.顺便提一下,虽然matlab不像其他语言那样,对变量

不使用中间变量交换变量a、b的值的延伸

基础 为简单起见,用(x,y)表示变量a和b在某一时刻的一组值. 以交换a和b的值为例 (a,b)-->(a+b,b)-->(a+b,a)-->(b,a) 引申一 如果是改变三个变量的值呢?比如(a,b,c)-->(c,a,b)(向右循环移一位) (a,b,c)-->(a+b,b,c)-->(a+b,b+c,c)-->(a+b,b+c,a+b+c)-->(c,b+c,a+b+c)-->(c,a,a+b+c)-->(c,a,b) 自然想到n,比如(