算法初步--什么是算法
一、算法的定义
“算法”是一系列解决问题的清晰指令。也就是说,对于符合一定规范的输入,能够在有限时间内获得所要求的输出。如图:
可以认为算法是问题的程序化解决方案。这些解决方案就是上面说的清晰精确指令。那么算法的一系列解决问题的步骤可以总结为:
算法的设计和分析过程
算法不仅要有正确性,还要有简单性,也就是时间效率和空间效率的的体现。我们当然希望一个算法运行速度快而且占用较少的存储空间。当我们对算法写代码的时候,可以先写伪代码,伪代码是一个很好的解决方案,它可以清晰地表达出解决问题的步骤。当我们真正用写代码的时候,就可以根据伪代码来作为参考,而不是语言描述。
一个算法应该具有以下七个重要的特征:
算法可以使用自然语言、伪代码、流程图等多种不同的方法来描述。 1、有穷性(Finiteness) 算法的有穷性是指算法必须能在执行有限个步骤之后终止; 2、确切性(Definiteness) 算法的每一步骤必须有确切的定义; 3、输入项(Input) 一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 4、输出项(Output) 一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 5、可行性(Effectiveness) 算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性); 6、高效性(High efficiency) 执行速度快,占用资源少。二、算法的基本要素
一 数据对象的运算和操作:一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:
1,算术运算:加减乘除等运算 + - * / 2,逻辑运算:或、与、非等运算 || && ! 3,关系运算:大于、小于、等于、不等于等运算 > < == != 4,数据传输:输入、输出、赋值等运算 (根据所用编程语言来确定) 二 算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。1、判断if
2、循环 for, while