算法是程序设计的灵魂 班级:软件 1202 学号:02 姓名: 【摘要】算法,简单的定义就是定义良好的计算过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。或者说,算法就是一系列的计算步骤,用来将输入数据转换成输出结果。算法,可以在各种学科中发挥出惊人的威力。然而,算法真正焕发青春得到进展,主要进展在计算机的时代。随着计算机技术的广泛应用,人们越来越清楚的认识到,作为计算机科学中最重要和最核心的技术——程序设计,其灵魂就是解决问题的算法 【关键字】 算法,程序设计算法是指解题方案的准确而完整的描述,是一系列解决问题的清楚指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定法律规范的输入,在有限时间内获得所要求的输出。假如一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清楚定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。这些尝试包括库尔特·哥德尔、Jacques Herbrand 和斯蒂芬·科尔·克莱尼分别于 1930 年、1934 年和 1935 年提出的递归函数,阿隆佐·邱奇于 1936 年提出的 λ 演算,1936 年 Emil Leon Post 的 Formulation 1 和艾伦·图灵 1937 年提出的图灵机。即使在当前,依旧常有直觉想法难以定义为形式化算法的情况。一个算法通常具有以下五个重要的特征:有穷性:算法的有穷性是指算法必须能在执行有限个步骤之后终止;确切性:算法的每一步骤必须有确切的定义;输入项:一个算法有 0 个或多个输入,以刻画运算对象的初始情况,所谓 0 个输入是指算法本身定出了初始条件;输出项:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。我们一般常见的几种算法分析设计策略主要有:动态规划、贪心算法、回溯法...