ツ【数据结构_绪论】ADT_复杂度

数据结构(C语言)(第2版) 严蔚敏 人民邮电

定义

  • 数据Data
    客观事物的符号表示
  • 数据元素/元素Data Element
    数据的基本单位
  • 数据项Data Item
    组成数据元素的、有独立含义的、不可分割的最小单位
  • 数据对象Data Object
    性质相同的数据元素的集合,是数据的一个子集
  • 数据结构Data Structure
    相互之间存在一种或多种特定关系的数据元素的集合
  • 逻辑结构
    ツ【数据结构_绪论】ADT_复杂度_第1张图片
  • 存储结构
    • 顺序存储结构
      借助元素在存储器中的相对位置来表述数据间的逻辑关系
      由低地址向高地址方向储存
    • 链式存储结构
      借助于程序设计语言的指针类型来描述
  • 抽象数据类型Abstract Data Type , ADT
ADT 抽象数据类型名{  //ADT=(D,R,P)
	数据对象:<数据对象的定义>
	数据关系:<数据关系的定义>
	基本操作:<基本操作的定义>
	}ADT 抽象数据类型名

基本操作名(参数表)
	初始条件:<初始条件描述>
	操作结果:<操作结果描述>

算法和算法分析

算法Algorithm

  • 特性:
    有穷性
    确定性
    可行性
    输入
    输出
  • 评价算法优劣的标准
    正确性
    可读性
    健壮性
    高效性:时间&空间复杂度

时间复杂度T(n)

问题规模(输入量):n
语句频度Frequency Count:一条语句重复执行的次数
//设每条时间执行一次所需的时间是单位时间(误差
执行时间=所有语句频度之和f(n)

//我们只考虑当问题规模充分大的时候
//用“O”来表述数量级(渐进符号
//多项式忽略所有最低次幂项和最高次幂的系数

T(n)=O(f(n))

1.找到基本语句//频度最大的
2.计算其频度f(n)
3.套“O”

常量阶 O(1)
线性阶 O(n)
平方阶 O(n2)
立方阶 O(n3)
对数阶 O(log2n)

空间复杂度S(n)

问题规模(输入数据/程序本身 /辅助变量):n

S(n)=O(f(n))

原地工作:辅助空间是常数/与问题规模无关,辅助空间为 O(1)

你可能感兴趣的:(数据结构)