期末复习:数据结构第1章

数据结构(C语言版|第2版)

第1章

1.有关概念
数据:客观事物的符号表示。
数据元素:数据的基本单位。
数据项:组成数据元素的、有独立含义的、不可分割的最小单位。
数据对象:性质相同的数据元素的集合,数据的一个子集。
数据结构:相互间存在一种或多种特定关系的数据元素的集合。分为逻辑结构和存储结构。
逻辑结构:由数据元素和关系组成。有4类基本结构(集合结构,线性结构,树结构,图结构)。
存储结构(物理结构):顺序存储结构(类似数组),链式存储结构(类似指针)。
数据类型:一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型:包括数据对象、数据对象上关系的集合以及对数据对象的基本操作的集合。

2.算法
算法:有穷性、确定性、可行性、输入、输出。评价算法忧劣的基本标准:正确性、可读性、健壮性、高效性(时间<时间复杂度>和空间<空间复杂度>)。

(1)算法的时间复杂度
○问题规模和语句频度
○算法的时间复杂度定义:算法中的"基本语句"的执行次数T(n)=O(f(n))。
○算法的时间复杂度分析:语句频度最大的那条语句作为基本语句。
①常量阶:T(n)=O(1) ←与问题规模n无关的常数
②k次方阶:T(n)=O(n^k) ←由最深层循环内的基本语句的频度f(n)决定
③对数阶:T(n)=O(log2n) ←for循环中有乘法运算,如for(i=1;i<=n;i*2){x++;s=0;}
④线性对数阶:T(n)=O(nlog2n)
⑤指数阶:T(n)=O(2ⁿ)
→在实际中,应尽可能选择使用多项式阶O(n^k)的算法,避免使用指数阶的算法。人们大多关心最坏和平均时间复杂度。一般情况下只讨论最坏时间复杂度。

(2)算法的空间复杂度
空间复杂度和时间复杂度一般不能同时兼顾,即空间复杂度好,那么时间复杂度便会相对较差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值