1绪论信息技术算法与程序福建教师招考
力为运动商城整理 数 据 结 构 参考书目: 《数据结构》 ——高等教育出版社 刘大有、唐海鹰、孙舒杨、虞强源、杨鲲 编著 《数据结构C++语言描述》 ——清华大学出版社 William Ford 、 William Topp 著 刘卫东、沈官林 译严蔚敏 审 《数据结构程序设计题典》 ——清华大学出版社 李春葆、曾惠、张植民 编著 第一章 绪 论 知 识 点 数据结构中常用的基本概念和术语 算法描述和分析方法 难 点 算法复杂度的分析方法 要 求 了解数据的逻辑结构和存储结构, 算法的基本概念,它们对于程序设 计的重要性以及相互关系 掌握算法时间复杂度的概念及分析方法 什么是数据结构 常见数据结构示例 基本概念和术语 数据(Data):一切能够由计算机接受和处理的对象。 数据元素(Data element):数据的基本单位,是组成数据的“事实”、“数值”或“符号” ,在程序中作为一个整体加以考虑和处理 。 数据项(Data item):数据的不可分割的最小单位,在有些场合下,数据项又称为字段或域。 数据对象(Data object):性质相同的数据元素组成的集合,是数据的一个子集。 数据结构(Data structure): 是相互之间存在一种和多种特定关系的数据元素的集合 讨论计算机系统中数据的组织形式及其相互关系 数据结构的研究,主要指数据的逻辑结构和物理结构的研究 数据的逻辑 结构:数据元素之间的相互关系 数据的物理 结构:数据结构在计算机的表示,又称数据的存储结构,包括数据元素的表示和关系的表示 逻辑结构 数据之间的相互关系称为逻辑结构。 通常分为4类基本结构: 集合:结构中的数据元素除了同属于一种类型外,别无其它关系。 线性结构:结构中的数据元素之间存在一对一的关系。 树型结构:结构中的数据元素之间存在一对多的关系。 图状结构或网状结构:结构中的数据元素之间存在多对多的关系。 数据(逻辑)结构的形式定义为: 一个二元组: Data-Structure=(D,S) 其中: D是数据元素的有限集; S是D上关系的有限集。 例 复数的数据结构定义: Complex=(C,R) 其中:C是含两个实数的集合﹛C1,C2﹜,分别表示复数的实部和虚部。R={P},P是定义在集合上的一种关系{〈C1,C2〉}。 存储结构: 顺序存储结构 连续顺序地存放数据元素 若数据的逻辑结构也是顺序(线性)的,则逻辑结构和物理结构就完全统一 连续存放的数据元素可以在内存中容易找到 链式存储结构 元素在内存中不一定连续存放 在元素中附加指针项,通过指针可以找到关系元素 顺序存储结构 链式存储结构 索引存储方法 为放在内存中的元素建立索引表 元素可以离散存放 通过查索引表找到需要的元素 数据类型(data type):是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。 抽象数据类型(abstract data type)简称ADT:是指一个数学模型以及定义在该模型上的一组操作。 抽象数据类型实际上就是对该数据结构的定义。 用三元组描述如下: (D,S,P) D--数据对象S--D上的关系集P--对D的基本操作 小结: 数据结构包括数据的逻辑结构,数据在计算机系统中的存储结构和数据操作的集合 把数据以一定的逻辑结构组织起来,以适当的方式存储在计算机系统的存储器里,其最终目的是为了有效处理数据,提高数据处理运算速度 算法(Algorithm): 算法的概念及特点 算法是为解决某一特定类型问题规定的运算规则的有穷集合 有穷性 确定性 有效性 输入 输出 算法与程序 相似:都是解决问题的方法和步骤,是指令的集合 区别: 有穷性 描述方法 联系:程序用某种程序设计语言来实现算法 算法的设计要求: 正确性:算法应能正确地实现处理要求 。 可读性:有助于对算法的理解,便于纠正和扩充 。 健壮性:使证明其正确性比较容易,对算法进行修改也比较方便。 效率与低存储:达到所需的时、空性能。 算法效率的度量: 算法的复杂性包括时间复杂性(所需运算时间)和空间复杂性(所占存储空间),重点是时间复杂性 。 事后验证、事先估计: 一个算法所需的运算时间通常与所解决问题的规模大小有关。 用n 表示问题规模的量 ,把算法运行所需的时间T表示为n的函数,记为T(n)。 定义:如果存在两个正常数c和n0,对于所有的n≧n0,有︱f(n) ︳≦c|g(n) ︳ 则记作 f(n)=O(g(n)) 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,算法的时间量记作