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

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

摘要:本文通过对变量间直接换值方法的探讨,提出了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的值换

免费下载该文档:变量间直接换值的一种算法
相关文档
变量与赋值
前面我们学习了算法的基本结构:顺序结构与选择结构, ...(4)可以先后给一个变量赋多个不同的值,但变 量...
一种动态二进制翻译中间表示变量活性分析改进算法
一种动态二进制翻译中间表示变量活性分析改进算法 - 动态二进制翻译是指可实现不同体系结构上软件兼容移植的系统,翻译过程使用源体系结构的一条或多条指令来模拟目标...
变量与赋值
自学导引常量与变量的概念 1. 不被改变的量 称为常量. (1)在算法过程中,其值___ 不同数值的量 叫...
算法之变量教案
算法变量教案 - 变量 一、教学目标 知识与技能: 1、理解变量的概念、命名规则、赋值格式及特点。 2、学习变量相关知识,解决交换两个变量值的实际问题。 过程与...
一种高效的多变量时间序列相似查询算法
一种高效的多变量时间序列相似查询算法 - 为了高效地执行多变量时间序列(MTS)相似查询,提出一种基于距离的索引结构(Dbis)相似查询算法.采用主成分分析方法对MTS数据...
《c语言程序设计》--4种“交换算法”介绍。
《C 语言程序设计》算法 计算机与网络中心 杨俊生 算法 交换 在很多问题的解决中都需要使用到交换这个方法,比如排序时,需要将两 变量的值互换等等。 交换是指...
求网的S-不变量的一种图算法
求网的S-不变量的一种算法 - 本文提出了一种新的求解网的S-不变量的方法.这种方法的基本思路是把一个网看作一个有向图,通过寻找网N的S-封闭基本有向...
几种多变量函数无约束求极值的算法实现和性能比较(2015年12月17修正)
几种多变量函数无约束求极值的算法实现和性能比较一、几种算法的 matlab 实现 ...(用于一般函 ) 迭代次数 耗时(s) 最优解 迭代次数 耗时(s) 最优解 ...
一种多变量决策树方法研究
一种变量决策树方法研究 - 单变量的决策树算法造成树的规模庞大,规则复杂,不易理解.本文结合粗糙集原理中的相对核及加权粗糙度的方法,提出了一种新的多变量...
一个高效的多变量时间序列聚类算法
时间序列聚类分析是数据挖掘研究的一个重要内容.已有的聚类算法大多采用k均值对低维数据进行聚类,不对高维多变量时间序列(MTS)数据进行有效聚类.提出一种高效的...