算法是神马(・◇・)?
概念、特征与描述
算法的概念
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
我们常认为,算法是个很高深复杂的词汇。但往往是这种先入为主的感觉让我们对新事物望而却步。看起来复杂,接触后也可以慢慢变得简单。如何把复杂问题简单化,正是算法的核心要义之一。

想象一下,算法就像是一个超级详细的食谱,但不是用来做菜的,而是用来解决各种问题的。
在计算机的世界里,算法就像是给电脑的一套秘籍、一本说明书,告诉它如何一步步地完成任务,比如排序数字、搜索信息或者玩游戏。
当我们需要电脑帮我们完成某些任务时,我们就需要撰写一个说明书,告诉电脑怎么完成这件事。
显然,我们在写这本说明书的时候,需要注意确保它满足的一些特征……
1、算法的特征
根据算法的定义,算法有以下几点特征:
| 特征名称 | 描述 |
|---|---|
| 有穷性 | 这个说明书的步骤必须是有限的。无论需要执行多少,必须确定数量。 |
| 可行性 | 这个说明书是可以实施的,而不是玄幻无厘头的 |
| 确定性 | 说明书描述的每个步骤都是明确的,不能有模糊指代 |
| 0个或多个输入 | 可以从外部获取数据,也可以提前已知数据,就不用从外界获取了。 |
| 1个或多个输出 | 必须有按照说明执行的结果出现。 |
2、描述方式
这本说明书的描述方法有很多种,可以用自然语言,可以用流程图,最终都会变成同一种——程序语言。

控制结构
1、算法的要素
要明白什么是控制结构,就需要明确算法的几个要素:数据、运算、控制转移。
用计算机解决问题,本质上是以“数据运算”的方式来实现的。
各种“运算”有时需要依次进行,有时需要根据条件选择一部分进行,有时又需要重复执行某些“运算”,这些“运算”顺序的调控就需要借助“控制转移”来实现。
因此,通过算法让计算机解决问题时,数据、运算及控制转移就成为算法的要素。
不同的控制转移,就形成了不同的“控制结构”。
2、三种控制结构
| 结构名称 | 流程图 | 结构描述 | 类型 |
|---|---|---|---|
| 顺序结构 | ![]() |
①每个步骤按照算法中出现的顺序依次执行。 ②每个步骤一定会被执行一次,而且只执行一次。 |
- |
| 分支结构 | ![]() |
①首先进行条件判断,根据条件满足与否来决定执行哪个分支 ②在一个分支结构中,必定有一个分支被执行,其他的分支则被忽略。 |
单分支、双分支、多分支…… |
| 循环结构 | ![]() |
在条件控制下,重复执行某些操作步骤 (比如重复执行“+1”,就可以形成一个“累加器”) |
for循环、while循环、do-while循环…… |
在算法设计过程中,可以自由选择不同种类的控制结构进行设计。
算法解决问题的过程
1、抽象与建模
1、提炼核心要素,并且加以确定或假设(设变量)
2、用数学符号描述解决问题的计算模型(列公式)
2、设计算法
遵循【算法的特征】,围绕【算法的要素】设计算法。
处理数据一般要经历三个步骤:(把大象装进冰箱一般要经历三个步骤)
1、输入数据(打开冰箱门)
2、处理数据(把大象塞进去)
3、输出结果,结束(关上冰箱门)
3、描述算法
自然语言、流程图,方便改写程序语言
练习





浙公网安备 33010602011771号