分析各种典型问题的算法,可以归纳整理出算法中的基本操作集合。一般来说,算法中的基本操作包含如下几种类型:数据传送:从某个内存单元中取出数值放于某个寄存器中;把某个寄存器中的数值放于某个内存单元中。例如,计算两个二进制数乘积pro=x*y问题,图3-1给出了两个二进制数相乘的方法,根据图3-1所示的方法,可以编写出用基本操作表示的处理该问题的算法。......
2025-09-30
在第1章我们简单介绍了算法的概念,并指出:软件的主体是程序,程序的核心是算法。算法既是人类之间交流智能的工具,也是人和机器之间交流智能的工具。算法既然在软件开发中具有如此重要的地位,我们就要对算法问题给予足够的重视。为此,我们需要给出算法的严格定义。
算法是描述求解问题方法的操作步骤的集合,这样的操作步骤必须具有确定性、可终止性和可执行性。
算法的确定性是指算法中的每一个操作步骤必须是含义确定的。算法的可终止性是指算法应能在有限的操作步骤后结束。算法的可执行性是指算法中的操作步骤都是可以具体执行的。
我们仍以第1章给出的求解两个整数的最大公约数问题的算法为例,来讨论算法的定义问题。求解两个整数的最大公约数问题的方法如下:
(1)令M为两个整数中的较大者,N为两个整数中的较小者;
(2)用M除以N,令R为M除以N的余数;
(3)若R不等于0,则令M等于N,N等于R,返回步骤(2)继续;若R等于0,则N中的数值就是两个整数的最大公约数。
显然,上述方法满足算法所要求的三点:第一,上述方法的每一个操作步骤都是含义确定的;第二,当两个整数M和N为有限数值时,上述方法可在有限的操作步骤后结束;第三,上述方法的每一个操作步骤都是可以具体执行的。因此,上述方法是一个算法。
但是,下面的方法就不是一个算法:(https://www.chuimin.cn)
(1)构造一个包含所有正整数数值的表;
(2)把这个表按从大到小的次序排序。
虽然上述方法的两个操作步骤都满足确定性,但是,步骤(1)要求构造包含所有正整数数值的表,所以不满足有穷性;步骤(2)要求把包含无限个正整数数值的表按从大到小的次序排序,而这样的要求是无法作到的,因此不满足可执行性。所以,上述方法不是一个算法。
从算法所具有的确定性、可终止性和可执行性,可以得出如下结论:
(1)由于算法中所有的操作步骤都具有确定性,而任何确定的、无二义的操作,计算机都可以按部就班地一步步执行,所以,我们很容易就可以把求解问题的算法转变为计算机可以执行的程序。
(2)计算机求解任何问题,必须在一个有限的时间段内得到处理结果,算法的可终止性保证了这一点。
(3)算法的可执行性保证了所有操作步骤都是在计算机上可以执行的。
从另一个角度来看,算法所处理的问题一定有零个或若干个输入数据,算法对一个问题的零个或若干个输入数据处理后,一定产生至少一个作为处理结果的输出数据。所以,从函数映射的角度看,算法是输入数据到输出数据的一种映射。
相关文章
分析各种典型问题的算法,可以归纳整理出算法中的基本操作集合。一般来说,算法中的基本操作包含如下几种类型:数据传送:从某个内存单元中取出数值放于某个寄存器中;把某个寄存器中的数值放于某个内存单元中。例如,计算两个二进制数乘积pro=x*y问题,图3-1给出了两个二进制数相乘的方法,根据图3-1所示的方法,可以编写出用基本操作表示的处理该问题的算法。......
2025-09-30
1.矩阵相似的定义设A,B都是n阶矩阵.如果存在n阶可逆矩阵P,使得B=P-1AP,则称矩阵A与B相似,也称A与B为相似矩阵,记为A~B.2.矩阵相似的性质设A,B,C都是n阶矩阵,则有以下性质:A~A.如果A~B,则B~A.如果A~B,B~C,则A~C.如果A~B,则AT~BT,Am~Bm,λA~λB,φ~φ(其中,φ(λ)=a0+a1λ+…......
2025-09-30
【主要内容】1.矩阵秩的定义设A是m×n矩阵,则称A的不为零的子行列式(简称子式)的最高阶数为A的秩,记为r(A),其中,A的k(k≤min{m,n})阶子式是指A的k行k列交叉位置的元素构成的k阶行列式.零矩阵的秩定义为0.2.矩阵秩的性质(1)设A是m×n矩阵,则0≤r(A)≤min{m,n}.(2)设A是m×n矩阵,k是常数,则(3)初等变换不改变矩阵的秩,即等价矩阵的秩相等.(4)设A,B......
2025-09-30
磁带早在计算机出现以前就被发明,早先的磁带主要用于记录声音,20世纪50年代中期,磁带开始用做计算机的外存。磁带转动的原理是,主动轮转动带动收带盘转动,收带盘转动带动文件盘转动。由于磁带是顺序存储设备,所以存储在磁带上的文件称为顺序文件。图2-15所示的是磁带上数据的组织方式。但是,随着近年来磁带机性能的不断提高,磁带机又开始广泛使用。......
2025-09-30
【主要内容】1.随机事件独立性的定义(1)两个事件独立性的定义设A,B是事件,如果P(AB)=P(A)P(B),则称A与B相互独立,简称独立;否则称A与B不独立.(2)三个事件独立的定义设A,B,C是事件,如果A,B,C中任意两个都是独立的,则称A,B,C两两独立;如果A,B,C两两独立,且满足P(ABC)=P(A)P(B)P(C),则称A,B,C相互独立,或简称独立.2.随机事件独立的性质设A,......
2025-09-30
从文件的处理流程可知,内存和外存之间需要频繁的交换数据,这体现为对文件的操作。这样的情况会造成从外存读入内存的数据时要进行组合或分解工作。为了方便处理,内存和外存交换数据的方法是:在内存中划分出一片称为缓冲区的足够大的区域,缓冲区用于内外存交换数据时的数据临时存放区域。缓冲区的使用简化了内外存数据交换过程。......
2025-09-30
从上节例2可知,f(z)=ex(cos y+i sin y)在整个复平面上解析,且f′(z)=f(z).容易验证f(z1+z2) =f(z1)+f(z2),据此我们给出复变指数函数的定义.定义1 对任意的复数z =x+iy,定义指数函数为w =ex(cos y+i sin y),记作ez.显然,|ez|=ex >0,而Arg(ez)=y+2kπ(k为整数),从而ez 0.当z 取实数,即y = 0......
2025-09-30
相关推荐