1、数据结构的问题(Data structure) 是计算机組织数据和存储数据的方式; 是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式以及定义在该組数据上的一组操作。
2、计算机解决问题的步骤
建立数学模型 -》设计算法 -》编程实现算法
3、数据的逻辑结构 是指数据及数据的组织方式
4、物理结构(Physical Structure)/存储结构 指数据结构的问题在机内的表示,数据的逻辑结构在计算机中的实现
5、数据结构的问题、算法和程序的关系 算法+数据结构的问题=程序 (1976年瑞士计算机科学家尼克劳斯·维尔特[Niklaus Wirth]提出)
数据(Data):所有能被计算机处理的符号的集合;实际问题中的数据称為原始数据
数据元素(Data Element):是数据这个集合中的一个个体即数据的基本单位。
数据项(Data Item):数据元素常常还可分为若干个数据项数据项昰数据具有意义的最小单位;在数据库中,数据项又称为字段/域它是数据的不可分割的最小标识单位
数据的存储结构: 数据在计算机内的表示形式。
特点: 预先分配恏长度需要预估存储数据需要的存储量; 插入和删除需要移动其他元素; 存取快捷,是随机存取结构
特点: 动态分配不需要预先确定内存分配; 插入和删除不需要移动其他元素; 非随机存取结构
索引存储方式:借助索引表中的索引指示各存储节点的存储位置。
散列存储方式:用散列函数指示各节点的存储位置
运算: 指在某种逻辑结构上施加的操作,即对逻辑结構的加工 加工型运算:其操作改变原逻辑结构的值;如:结点个数,结点内容等 引用型运算:其操作不改变原逻辑结构的值。基本运算: 建立 查找 读取 插入 删除
算法: 算法规定了求解给定类型问题所需的所有“处理步骤”及执行顺序使给定类型问题能在有限时间内被機械的求解。
算法必须使用某种语言描述:
一个算法是对特定问题求解步驟的一种描述它是指令的有穷序列。
可行性: 算法中的每一步都是可以通过已经实现的操作来完成的
输入: 一个算法有零个或者多个输入,这些输入取自于特定的对象集合
输出:一个算法有一个或者多个输出,它们是与输入有特定关系的量
选择最优算法的2个度量: