绪论
数据结构起源-背景/地位
程序=数据结构+算法
从问题到程序的过程
自动递增的整形编号作为数组
问题分类:1.数值问题 2.数据问题
一、数据结构的基本概念
基本术语
数据
数据结构
作为整体处理
数据项
组成数据元素的基本单位,一个数据元素可以由若干个数据项组成
数据对象
要求:数据的数量和类型相同
各术语之间的关系
数据结构
什么叫数据结构
数据结构=数据元素+关系
数据结构的分类
逻辑结构和物理结构
物理结构:
- 顺序存储
- 链式存储
- 索引存储
- 散列存储
逻辑结构
例子
集合、线性表
树状/树根模型
图
物理结构
顺序存储结构
链式结构
随机存储
索引存储、散列存储
索引:一个一个找(最原始)
散列:为了查找而查找(根据散列函数去找)
课后练习
二、算法和算法的度量
相关概念
程序
算法
输入可以没有,输出一定要有
算法设计准则
- 正确性:合法输入
- 可读性:注释
- 健壮性:跨平台、跨设备
- 高效性:时间短、空间小
三、算法的时空复杂度
性能分析与度量
时间复杂度
java是一种面向对象的语言
执行时间与机器有关;
效率只与问题规模有关;
时间复杂度(O)
公式:T(n)=O(f(n))
O(n):线性阶
算法效率度量方法
事后统计法和事前分析估算法