数据结构:
数据:描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。
数据元素:数据元素是组成数据的基本单位,是数据集合的个体,在计算机中通常作为一个整体进行考虑和处理。
数据对象:性质相同的数据元素的集合,是数据的一个子集。
整数集合:N={0,±1,±2,…} 无限集
字符集合:C={‘A’,‘B’,…,‘Z’}有限集
数据结构:相互之间存在一种或多种特定关系的数据元素的集合,是带有结构的数据元素的集合,它指的是数据元素之间相互的关系,即数据的组织形式。
抽象数据类型:数据模型定义在这个模型上的一组操作。该定义仅仅取决于它的一组逻辑特性,与它在计算机中的表示和实现无关。
抽象数据类型的重要特征:数据抽象、数据封装。
数据机构研究的内容数据元素构成:
逻辑结构:
数据元素之间所固有的关系描述成前后件(前驱和后继)关系,数据之间前后件关系是它们之间的逻辑关系,与它们在计算机中的存储位置无关。
定义:数据的逻辑结构是指数据元素之间逻辑关系描述。
形式化描述:数据结构是一个二元组Data_Structure=(D,R) 其中D是数据元素的有限集,R是D上关系的有限集。
四类基本数据结构:
1、集合:数据元素都属于这个集合,但数据元素之间并没有什么关系。
2、线性结构:元素具有一对一的关系。线性结构分为顺序存储和链式存储两种。顺序存储是由一段地址连续的空间来存储元素;链式存储是由分散的单元空间来存储元素,存储单元由指针相连接。

3、树形结构:数据元素之间存在一对多的层次关系。

4、图形结构:数据元素存在多对多的关系,每个结点的前驱和后继结点都可以是任意个的。

存储结构:
1、顺序存储结构:把逻辑上相邻的结点存储在地址连续的存储单元里,数据元素之间的关系由存储单元是否相邻来体现。

2、链式存储结构:在空间上是一些不连续的存储单元,这些存储单元的逻辑关系通过附加的指针字段来表示。


3、索引存储结构: 在存储结点信息的同时,还建立附加的索引表。

4、散列存储结构 又称为哈希存储,是一种力图将数据元素的存储位置与关键字之间建立确定对应关系的查找技术。它的基本思想是通过一定的函数关系(哈希、散列函数)计算出一个值,将这个值作为元素的存储地址。
运算结构:
讨论数据的目的是为了再计算机中实现操作,因此在结构上的运算集合是很重要的部分。数据结构就是研究一类数据的表示及其相关的运算操作。
什么是算法
描述解决问题步骤的方法。
算法的五种特性:
1、可行性;
2、确定性;
3、有穷性;
4、输入;
5、输出;
算法设计的要求:
1、算法的正确性(实例)【含义:(1)所设计的程序没有语法错误;(2)设计的程序对于几组输入数据能够得出满足要求的结果;(3)程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得到满足要求的结果。(4)对于一切合法的输入数据都能产生满足要求的结果。】
2、可读性
3、健壮性(鲁棒性)
4、高效率和低存储量
算法、语言、程序的关系
1、算法:规则的有限集合,解决特定问题规定的操作。
2、描述算法的工具:算法可用自然语言、框图或高级程序设计语言进行描述。
3、程序:算法在计算机中实现。
评价算法的标准
算法所占用机器资源的多少,而资源中时间代价和空间代价两个主要方面,通常是以算法执行所需的机器时间和所占用的存储空间来判断一个算法的优劣。
关于算法执行时间
定义:算法的执行时间大致等于其所有语句执行时间的综合,对于语句执行时间是指该调语句的执行次数和执行一次所需时间的乘积。
分析:算法的实际执行时间与机器硬件和系统软件等多种环境因素有关,因此算法的执行时间是针对算法中语句的执行次数做出估计,从中得到算法执行时间的本质信息。
语句频度
语句在算法中重复执行的次数
算法的复杂度
1)时间复杂度——大O标记法
(1)用常数1取代运行中的所有加法常数。
(2)在修改后的运行次数函数中,只保留最高阶项。
(3)如果最高阶项存在,且不是1,则除去其常系数,得到的结果就是大O阶。

每行执行一次,共四次;f(n)=4,即T(n)=O(4)算法的时间复杂度为O(1);

程序段的执行次数为1+n+1 f(n)=n+2, T(n)=O(n) 算法的时间复杂度O(n)


2)空间复杂度
对一个算法在运行过程中所占存储空间大小的度量,一般也作为问题规模n的函数,以数量级形式给出:
S(n)=O(f(n))
6132

被折叠的 条评论
为什么被折叠?



