您的位置:首页 > 理论基础 > 数据结构算法

数据结构笔记——第一章 绪论

2014-09-14 22:07 323 查看
1.1 数据结构在 程序设计中的作用
1) 数据结构:待处理的数据以及数据之间的关系。
2) 数据表示: 将数据以及数据之间的关系储存到计算机的内存中。
3) 数据处理:具体的操作步骤,将问题求解的基本思路形成算法。
沃思给出一个著名的公式: 数据结构+算法=程序
程序设计的一般过程:



1.2 数据结构讨论的主要内容
1.3 数据结构的基本概念
1.3.1 数据结构(相互之间存在一定关系的数据元素的集合)
1) 数据:信息的载体,在计算机科学中是指所有能输入到计算机中并能被计算机程序识别和处理的符号集合。
2)数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
3)数据项:构成数据元素的不可分割的最小单位。
4) 数据的逻辑结构:数据元素之间逻辑关系的整体。
可分为四类:集合、线性结构、树结构、图结构(后两个也称为非线性结构)。



5)数据的存储结构(物理结构):是数据及其逻辑结构在计算机中的表示。
通常有两种:
顺序存储结构:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。
链式存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。
6)数据的处理:操作、插入、删除、改正、检索。
1.3.2 抽象数据类型
1)数据类型:一组值的集合以及定义于这个值集上的一组操作的总称。
2)抽象:抽出问题本质的特征而忽略非本质的细节,是对具体事物的一个概括。
3)抽象数据类型(ADT):是一个数据结构以及定义在该结构上的一组操作的总称。



1.4 算法计算法分析
1.4.1 算法及其描述方法
1)算法:是对特定问题求解步骤的一种描述,是指令的有限序列。
2)特征:
输入:一个算法有零个或多个输入(即算法可以没有输入),这些输入通常取自于某个特定的对象集合。
输出:一个算法有一个或多个输出(即算法必须要有输出),通常输出与输入之间有着某种特定的关系。
有穷性
确定性
可行性
3)“好”算法:正确性、鲁棒性、简单性、抽象分级、高效性。
4)算法的描述方法
自然语言(按步骤平述,易理解但冗杂)、流程图、程序设计语言、伪代码(介于自然语言和程序设计语言之间的方法)。
例: 1. r=m%n;
2. 循环直到r等于0
2.1 m=n;
2.2 n=r;
2.3 r=m%n;
3. 输出n;
1.4.2 算法分析
1)度量算法效率的方法
2)算法的时间复杂度(通常用大O表示)
O用来描述增长率的上限
在源代码编程中,基本语句执行一次记O(1),称为常量阶;
基本语句执行次数为n,记O(n),称为线性阶;
常见的时间复杂度:

O(log2n)<O(n)<O(n*log2n)<O(n^2)<O(n^3)<.....<O(2^n)<O(n!)
3) 最好、最坏和平均情况(比较一个元素、比较n-1个元素和比较n/2个元素)
4)算法的空间复杂度
S(n)=O(f(n))
5)算法分析举例
6)定理:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: