绪论

数据类型

原子类型

  • 原子类型不可再分(int,char,string)

结构类型

  • 结构类型可再分

抽象数据类型(ADT)

  • 定义:数学模型以及定义在该模型上一组操作,它的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用
  • 三元组:数据对象,数据关系,基本操作集

原子类型与结构类型的区别

  • 原子类型不可再分结构类型可再分

数据结构

  • 数据结构的基本单位数据元素,一个数据元素可以由若干个数据项组成,数据项是构成数据元素的不可分割的最小基本单位

!数据元素可以由类型互不相同的数据元素构成,但线性表中的元素必须是相同类型

  • 数据结构是研讨数据的逻辑结构物理结构,以及他们之间的相互关系,并对这种结构定义相对应的运算,设计出相应的算法
  • 由逻辑结构,存储结构,数据运算构成(三要素)

逻辑结构

  • 由线性结构,非线性结构构成

!数据的逻辑结构是指数据元素之间的逻辑关系的总体,而非数据项之间的逻辑关系

线性结构

  • 具有线性关系,除了第一个与最后一个元素之外每一个元素都只有一个前驱与后继

非线性结构

  • 至少存在一个元素含有两个或两个以上的前驱或后继

存储结构

  • 是物理结构和逻辑结构在计算机上的映射,分为顺序存储链式存储,索引存储和散列存储四种
  • 数据的物理结构包括数据元素的表示数据元素之间关系的表示

顺序存储

  • 顺序表,数组实现

链式存储

  • 链表,指针实现

索引存储*

  • 操作系统和文件目录的索引

散列存储*

  • 哈希查找表

数据运算

  • 运算的定义上是针对逻辑结构的,实现上是针对存储结构的

算法五大特性

  • 有穷性,确定性,可行性,输入,输出

!一个算法可以没有输入,但至少有一个输出

算法效率度量

空间复杂度

  • 交换 \(a\), \(b\) 空间复杂度为 \(O(1)\),也称作原地工作,即算法所需的辅助空间是常量

时间复杂度

  • 计算一个算法执行了多少次

\[O(1)<O(\log_2n)<O(n)<O(n\log_2n)<O(n^2)<O(2^n)<O(n!)<O(n^n) \]

!平均时间复杂度一般情况下等于最坏情况下的时间复杂度

posted @ 2021-11-02 18:03  絵守辛玥  阅读(87)  评论(0)    收藏  举报