变量间直接换值的一种算法

变量间直接换值的一种算法

摘要:本文通过对变量间直接换值方法的探讨,提出了n(n>=2)个变量间不通过中间变量直接换值的一种算法,该算法思想简单、易懂、规律性强,代码编写简洁且不易出错。通过教学证明,学生能容易地深入领会这种直接换值算法的核心思想,在计算机程序设计教学方面有一定的借鉴意义。

关键词:变量;直接;换值;算法

1引言

变量间值的交换是计算机程序设计中常见的一种过程,一般的对于2个变量,例如变量A和B,当要交换它们的值时,需要借助于一个中间变量,例如变量C,利用中间变量C提供的暂存储空来协助完成变量A和B值的交换。如下是用c语言描述的这种算法:

int a,b,c;/*定义三个变量*/ c=a;/*c作为中间变量先保存a的值*/

a=b; /*将b的值换给a*/b=c;/*把c中预先保存的a的值换给b*/

在这种2个变量换值的算法中,中间变量必不可少,而当参与换值操作的变量的个数为n(n>2)时,必须对参与换值的变量逐个进行换值操作。而无论参与换值的变量个数是2还是n(n>2),要完成这些变量间值的交换,通常的方法都需要预先定义至少一个中间变量,利用中间变量提供的内存空间协助完成换值操作,这个多出的中间变量必然会占用一定的内存空间。严重的是,当n值很大时,实现换值过程的程序代码就会过于繁冗,并且由于要反复使用中间变量,编码过程就会显得枯燥且容易出错。笔者考虑,能否有一种算法能够不使用中间变量,而用一种统一的、很有规律性的公式来直接完成对n(n>=2)个变量的换值操作。本文所要讨论的就是这种更简单、更具规律性的通用性算法。

2变量间的直接换值算法

在计算机程序设计中,变量间的相互换值,不论参与换值的变量的数目n(n>=2)有多大,在过程式单进程运行的程序中,都是依次由每2个变量进行值的交换,进而完成所有变量的换值操作。因此,2个变量间值的交换是最基本、最常见也是较特殊的一种换值过程,下面将分别对n(n>2)个变量和2个变量间的直接换值算法进行讨论。

2.1n(n>2)个变量间的直接换值

这里讨论的多个变量间的直接换值是指如下情形。例如,对于a、b、c、d、e、f、g这7个变量,如图1题目要求将e的值换给d,d的值换给c,c的值换

免费下载该文档:变量间直接换值的一种算法
相关文档
《c语言程序设计》--4种“交换算法”介绍。
《C 语言程序设计》算法 计算机与网络中心 杨俊生 算法 交换 在很多问题的解决中都需要使用到交换这个方法,比如排序时,需要将两 变量的值互换等等。 交换是指...
已知变量a、b已被赋值,要交换a、b的值,采用的算法是()
已知变量a、b已被赋值,要交换a、b的值,采用的算法是() Aa =" b," b =" a" Ba =" c," b =" a," c =" b" Ca =" c," b =" a," c ...
几种多变量函数无约束求极值的算法实现和性能比较(2015年12月17修正)
几种多变量函数无约束求极值的算法实现和性能比较一、几种算法的 matlab 实现 ...(用于一般函 ) 迭代次数 耗时(s) 最优解 迭代次数 耗时(s) 最优解 ...
多变量广义预测控制及一种简化算法
一种中间计算参数少 、 在线计算时 间短的多变量单值广义预测控制算法 , ...( 1) 选定有关过程和控制参数 n A , nB , n C 和 j 设置参数辨识初值...
数据分析笔试题
一、异常值是指什么?请列举 1 种识别连续型变量...二. 算法设计题 1. 用 C/C++写一个归并排序。 ...以便当一个对象的状态发生 变时,所有依赖于它的...
变量与赋值
它是计算机基本的逻辑推理结构 在设计算法的过程中有...(4)可以先后给一个变量赋多个不同的值,但变 量...赋值,再给F 赋值.也就是说这个算法设置两个...
北师大版2.2变量与赋值教学设计
本节教材通过实例介绍了设置变量和给变量赋值, 给变量赋值实质上是算法语句中的赋 值语句,是计算机能够识别的一种算法形式.变量的值可以由输入的方式给定,也可以 ...
一种高效的多变量时间序列相似查询算法
并且彼此之间存在着一定的相关性,因而使得这些变量所 基金项目:河北省科技攻关...算法1 的值。 输出MTS数据集中与Q最相似的七个序列。kad.]|(={Xl,恐,…,...
1.2.基本算法语句lg
已知变量a,b已被赋值,要交换a、b的值,应采用的算法是( ) Aa=b,b=a Ba=c,b=a,c=b Ca=c,b=a,c=a Dc=a,a=b,b=c 正确答案及相关解析 正确...