一、算法的基本特征
1、能行性
2、确定性
3、有穷性
4、完备性
二、算法描述系统(c or c++ )
基本运算符:> 、 < 、 == 、!= 、 >= 、 <= 、 && 、 || 、 !
基本结构:顺序 条件 循环
if() for()
else() while() 包含 do{} while()
三、基本方法
1、枚举法 2、归纳法 3、递推法
4、递归法(自己调用自己) 分类: 直接递归
间接递归
递归设计方法:
递归需要有边界条件、递归前进段、递归返回段。
区别:递推是基于数据的,递归是基于方法的。(时间与空间的消耗)
5、回溯法 (皇后问题)
四、算法的评价:时间与空间(相悖性)
时间短,空间少,为优。
1、算法的时间复杂度:基本操作执行次数 f(n) n代表数据规模
2、算法的最优性:执行的基本运算先对最少
参考:https://blog.csdn.net/bingoxubin/article/details/79276991
计算算法的时间复杂度:
https://blog.csdn.net/juanlansexuehua/article/details/54585019
https://blog.csdn.net/u014248127/article/details/52905401
https://www.cnblogs.com/dalaohu/p/5433076.html
https://www.cnblogs.com/seer/p/5603924.html
https://www.cnblogs.com/nwnu-daizh/p/8652285.html
https://www.cnblogs.com/crazylqy/p/7638780.html
https://www.cnblogs.com/Leo_wl/p/4313635.html
https://www.cnblogs.com/davygeek/p/4375497.html
https://www.cnblogs.com/suiying/p/4748490.html
3、算法的空间复杂度:计算机执行算法所需的内存空间
程序空间 初始输入数据空间
执行过程所需的暂存空间
四、数据(data):反应客观事物的信息集合,信息的载体。可被计算机识别、存储、加工。
数据的基本单位是数据元素——可以由多个数据项组成——数据项是具有独立含义的最小数据单位
数据对象(data object):
相同特性的数据元素的集合,即数据的子集。
五、数据结构(data structure):互相关联的数据元素的集合。
既要有数据,还要有定义在数据上的关系
两要素:(互相关联的)相同的数据元素的集合
定义在集合上的关系:(不同的关系定义不同的数据结构)
~~研究: 逻辑结构 存储结构 算法(施加在数据上的操作)
。数据结构是可以嵌套的,例如二维数组
。逻辑结构与存储(物理)结构之间的映像(对应)关系
1、 逻辑结构
分类:线性结构
非线性结构:树、图
2、四种基本的数据结构:
1)集合结构 (空集也是)
2)线性结构 一对一
3)树形结构 一对多
4)图状关系 多对多
3、存储结构
分类:
顺序存储 可以存储非线性数据(特定) 数组、向量、指针(指向连续区域)
优点:可以实现随机访问
链式存储 存储空间不连续,通过指针反应关系
可以描述线性与非线性数据结构
缺点:不能实现随机访问
总结:。逻辑结构必定要一种存储结构实现。
。两种结构关系即不固定又不唯一。
。数据结构的分类可以多种,可以定义在逻辑结构上,也可以定义在存储结构上,
还可以定义在存储方法上。
六、研究对象
。数据结构是建立在离散数学的基础上,本门课程主要研究非数值数据之间的结构关系。
。运算操作以插入、删除、查找、更改为主。
七、总结
算法决定行为,数据结构设计(决定)信息结构特征。算法和数据结构具有统一性。
数据结构是对数据的抽象,独立于具体数据。
算法是对处理过程的抽象,独异于具体处理。