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

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

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

免费下载该文档:变量间直接换值的一种算法
相关文档
变量函数的概率密度的一种简便算法
变量函数的概率密度的一种简便算法 - 第! 卷第# 期 !**年 +月 辽宁工学院学报 , % . / 0 & % 1 2 3 0 % / 3 / 45 / 6 7 3 7 7 ...
两个变量交换值
程序员之间的交流,一般情况 下碰到交换变量值的问题...上面的算法最大的缺点就是需要借助一个临时变量。...
《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=a Dc=a,a=b,b=c...
变量与赋值
(1)在算法过程中,其值___ 不同数值的量 叫做变...变量. (4)一个赋值语句只能给一个变量赋值,不能...可以先画出算法框图以理顺算 法中各步骤之间的逻辑...
求布尔函数零化子的一种算法以及一类代数攻击不变量
求布尔函数零化子的一种算法以及一类代数攻击不变量 - 该文首先给出了一种新的求布尔函数代数次数≤d的零化子的算法,并且利用布尔函数的特征矩阵得到了低次零化子...
1.2.2基本算法语句(输入、出、赋值)
1. 什么是算法?什么是程序框图?算法通常指可以用计算机来解决的某一类问 题的...INPUT x ④输入语句要求输入的值只能是具体的常数。 ⑤提示内容与变量之间用“...
变量与赋值
它是计算机基本的逻辑推理结构 在设计算法的过程中有...(4)可以先后给一个变量赋多个不同的值,但变 量...赋值,再给F 赋值.也就是说这个算法设置两个...
高中数学第二章算法初步2.2变量与赋值教案
本节教材通过实例介绍了设置变量和给变量赋值, 给变量赋值实质上是算法语句中的赋 值语句,是计算机能够识别的一种算法形式.变量的值可以由输入的方式给定,也可以 ...
算法与程序设计知识点
算法与程序设计知识点_理学_高等教育_教育专区。1 ...在程序运行中可以改变值的变量 (3)列举数据的...A(1) 变量 4.变量的作用和特点;设置和使用变量。...