您现在的位置:希赛网>云阅读>软件设计师考试考点分析与真题详解(第4版)>常用算法设计算法设计概述第24章:常用算法设计作者:希赛教育软考学院来源:希赛网2014年03月13日常用算法设计算法设计概述第24章常用算法设计根据考试大纲,算法设计是每年必考的知识点,一般以C/C++语言的形式进行描述。本章主要讨论经常考的几种算法。24.1算法设计概述算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点儿说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。一个算法应该具有以下5个重要的特征。(1)有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。(2)确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的输出。(3)输入:一个算法有0个或多个的输入,以刻画运算对象的初始情况。所谓0个输入是指算法本身定出了初始条件。这些输入取自于某个特定的对象的集合。(4)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。(5)可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。算法设计要求正确性、可读性、健壮性、效率与低存储量。效率指的是算法执行时间。对于解决同一问题的多个算法,执行时间短的算法效率高。存储量需求指算法执行过程中所需要的最大存储空间。两者都与问题的规模有关。算法的复杂性是算法效率的度量,是算法运行所需要的计算机资源的量,是评价算法优劣的重要依据。可以从一个算法的时间复杂度与空间复杂度来评价算法的优劣。当我们将一个算法转换成程序并在计算机上执行时,其运行所需要的时间取决于下列因素:(1)硬件的速度。例如使用486机还是使用586机。(2)书写程序的语言。实现语言的级别越高,其执行效率就越低。(3)编译程序所生成目标代码的质量。对于代码优化较好的编译程序其所生成的程序质量较高。(4)问题的规模。例如,求100以内的素数与求1000以内的素数其执行时间必然是不同的。显然,在各种因素都不能确定的情况下,很难比较出算法的执行时间。也就是说,使用执行算法的绝对时间来衡量算法的效率是不合适的。为此,可以将上述各种与计算机相关...