算法+数据结构=程序
计算机解决一个问题,大致需要5个步骤:
算法:解决特定问题的步骤和方法的描述,是指令的有限序列。
数据结构:问题的数学模型
程序:算法在计算机上使用某种程序设计语言的具体实现
数据结构
- 数据:能够输入到计算机中并被计算机程序识别和处理的符号集合。
2. 数据结构:相互之间存在一种或多种特定关系的数据元素的集合
数据结构包括两个层次:
①逻辑结构:数据元素之间的逻辑关系
②物理结构:在计算机中的存储方式
算法
对特定问题求解步骤的描述,是指令的有限序列,每一条指令表示一个或多个操作
算法特性
- 有穷性:在输入合法的情况下,一个算法的每一步必须在有穷时间内完成,该算法要在有穷步骤后结束
- 确定性:每条指令都要有确定含义
- 可行性:算法中描述的的操作都可通过有限次执行已经实现的基本运算来实现
- 有输入:一个算法有0个或多个输入
- 有输出:一个算法有一个或多个输出
算法与程序的关系
程序是算法在计算机上用某种程序设计语言的具体实现
算法可以用不同方式、不同语言表示,比如英语、汉语、流程图、伪代码等等
算法设计要求
- 正确性
①没有语法错误
②对任何合法的输入都能得出正确的结果 - 可读性
逻辑清晰,易于理解 - 健壮性
当输入数据非法时,算法能够做出反应和处理 - 效率与存储量需求
一个好的算法应该执行时间少,存储空间小
算法性能分析
时间复杂度与空间复杂度
(这是下一节的内容)
这一节有收获了吗(●’◡’●)