设计算法的理念

算法是对问题求解过程的一种描述,是为解决一个或一类问题给出的一个确定的、有限长的操作序列。在设计算法时,通常应考虑以下原则:首先说设计的算法必须是“正确的”,其次应有很好的“可读性”,还必须具有“健壮性”,最后应考虑所设计的算法具有“高效率与低存储量”。 所谓算法是正确的,除了应该满足算法说明中写明的“功能”之外,应对各组典型的带有苛刻条件的输入数据得出正确的结果。在算法是正确的前提下,算法的可读性是摆在第一位的,这在当今大型软件需要多人合作完成的环境下是更重要的,另一方面,晦涩难读的程序易于隐藏错误而难以调试。算法的效率是指算法的执行时间,算法的存储量是指算法执行过程中所需最大存储空间。

算法是程序设计的一个不可缺的要素,严格地说,一个算法必须满足以下5个重要特性:

1.有穷性。对于任意一组合法的输入值,在执行有穷步骤之后一定能结束。这里有两重意思,即算法中的操作步骤为有限个,且每个步骤都能在有限时间内完成。

2.确定性。对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径。确定性表现在对算法中每一步的描述都没有二义性,只要输入相同,初始状态相同,则无论执行多少遍,所得结果都应该相同。

3.可行性。算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。可行性指的是,序列中的每个操作都是可以简单完成的,其本身不存在算法问题,例如,“求x和y的公因子”就不够基本。

4.有输入。作为算法加工对象的量值,通常体现为算法中的一组变量。但有些算法的字面上可以没有输入,实际上已被嵌入算法之中。输入值即为算法的操作对象,但操作的对象也可以由算法自身生成,如“求100以内的素数”,操作对象是自然数列,可以由变量逐个增1生成。

5.有输出。它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值