持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天
1.1概述
程序 = 数据结构 + 算法
1.2基本概念
数据
分类及区分
- 数据 对客观事物的符号表示,在计算机科学中是指所有能够输入计算机中并且能够被计算机程序处理的符号的总称
- 数据对象 (数据元素类) 是具有相同性质的数据元素的集合
- 数据元素 (又可称为元素、结点、顶点、记录) 是数据的基本单位
- 数据项 数据不可分割的最小单元
数据类型
分类
1.原子类型 = 一种值的集合 + 定义在值集合上的一组操作。(比如:int,float,字符串) int型:包括值集(1,2,3,4,5。。。),并且可以在这些值上进行+-*/ 2.结构类型 = 一种数据结构 + 定义在这种数据结构上的一组操作。(比如:python中的列表,字典,元组)
整型 实型 字符型 数组 结构体 指针
抽象数据类型(Abstract Data Type,ADT)
1.定义
由用户定义的,表示应用问题的抽象数学模型,以及定义在这个模型上的一组操作的总称。
仅取决于它的一组逻辑特性,而与它在计算机中的表示和实现无关
2.组成
D S P
基本操作包括三个
ADT抽象数据类型名{
data:
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
operation:
基本操作:<基本操作的定义>
操作1(参数列表){
初始条件:
操作结果的最终描述
操作2(){
}
......
}ADT抽象数据类型名
数据类型&数据结构
(112条消息) 数据结构、数据类型、抽象数据类型之间的区别一号业余玩家的博客-CSDN博客数据类型和抽象数据类型的区别
数据结构
1.定义
数据元素(值)的集合 有约束
2.存储结构分类
(1) 逻辑结构 数据元素之间所固有的逻辑关系
注:与数据元素本身的形式、内容、相对位置、个数无关
-
集合 数据元素同属一个集合,单个数据元素之间没有任何关系
-
线性(栈、队列、串、数组) 有且仅有一个开始结点和一个终端结点,且所有结点都最多只有一个直接前驱和一个直接后继。
注:非线性结构(树、多维数组、广义表、图、堆)在该类结构中至少存在一个数据元素,它具有两个或者两个以上的前驱或后继。
-
树型 层次数据结构,数据元素之间存在一对多的关系。
-
图型 层次数据结构,数据元素之间存在多对多的关系。
(2)物理结构 在数据处理时,各数据元素在计算机中的存储关系
- 顺序存储 是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系 数组表示
- 链式存储 无需占用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址 指针表示
- 有时为了查找的方便还采用索引存储方法和散列存储方法
算法
1.定义 解题方案的准确而完整的描述
2.基本特征
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
3.设计要求
4.评价
(1).评价算法优劣的基本标准
正确性
可读性
健壮性
高效性
(2).常用
时间复杂度
空间复杂度
\