算法的概念,结构,常见应用等内容讲解
树图思维导图提供 算法思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 算法思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:eff4b28421dd8526570fc855af8a9775
算法思维导图模板大纲
算法正式定义
算法是求解问题步骤的有序集合,它能够产生结果并在有限时间内结束。
为解决问题而采用的方法和步骤就是算法
算法的质量直接影响程序运行的效率
根据图灵理论,只要能够被分解为有限步骤的问题就可以被计算机执行
子主题 1
5个算法特性
确定性
有穷性
有效性
可有零个或多个输入
有一个或多个输出
算法分类
数值计算
非数值计算
顺序结构
分支结构
循环结构
while结构
do while结构
算法举例
求两个正整数A和B的最大公约数(GCD)
逐个验证方法
计算过程
程序
欧几里德(Euclid)方法
计算过程
程序
用while True结构实现
算法的表示是为了把算法以某种形式加以表达,因此一个算法的表示可以有不同的方法
自然语言
伪代码
流程图
Python代码
求N!
自然语言
优点:容易把握算法主要思路
缺点:不够严密,有时会出现多义性,不容易对应程序设计语言的描述
伪代码
流程图
Python语言
解决问题的4个步骤
1. 理解问题
2. 设计一个解决问题的方案
3. 执行这个方案
4. 检验这个方案
基本算法
求和、累积
求最值
数的分解
迭代
正整数转换二进制
让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值
递归
函数调用自身的编程技巧称为递归
阶乘的递归、斐波那契数列的递归、f(n)的前n项
阶乘的递归
斐波那契数列的递归
求f(n)的第n项(迭代)
排序
选择排序(从小到大)
在n个数的表中找到最小的数并与第一个位置的数交换,然后在余下的n-1个数中找到最小的数与第二个位置的数交换,直到对所有数据全部扫描过
冒泡排序(从小到大)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。针对所有的元素重复以上的步骤,除了最后一个。
查找
顺序查找
从列表的第一个数据(或叫做元素)开始,但给定的数据和表中的数据匹配时,查找过程结束,给出这个数据所在表中的位置或明确表中没有该数据。
折半查找
可以选择迭代或者递归
也叫二分法,对已经大小有序的列表,可以进行折半查找。从列表的中间位置开始,比较要查找的的数据,判断是在前半部分还是后半部分。每次比较至少可以排除一半的范围,是效率很高的方法
贪心法
贪心法不能确定得到的最后解是最优的,也不能用于求解最大或最小问题
零钱问题
分治法
金块儿问题
思维导图模板大纲
树图思维导图提供 1107文家市玉萍思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 1107文家市玉萍思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ed943ef641f6dc874860eb6095857ed6
树图思维导图提供 种子思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 种子思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:86f8307a40ea24607c6c79354e09377f