第一章 数据结构与算法绪论

免责声明:

  • 笔记来源:本系列所有笔记均整理自 B站·王道考研·数据结构 视频教程。
  • 参考书籍:《2021年数据结构考研复习指导》,王道论坛所著,电子工业出版社出版,ISBN :9787121379819。

目录

数据结构,是相互间存在特点关系的数据元素的集合。

1 数据结构三要素

逻辑结构

逻辑结构:独立于计算机,与存储无关,从逻辑上描述数据之间的关系。分为两种:

  • 线性结构
  • 非线性结构
    在这里插入图片描述
    逻辑结构决定了一个算法的设计。

存储结构

存储结构(物理结构),是数据结构在计算机中的表示(数据元素以及关系的表示),主要分为:

  • 顺序存储:逻辑上相邻、物理上也相邻;可随机存取,缺点是可能产生较多存储碎片
  • 链式存储:使用指向相关元素的地址指针来表示元素间的逻辑关系,物理上不需要连续;缺点是只能顺序存取,优点是不会产生存储碎片
  • 索引存储:存储数据信息的同时,建立附加的索引表。优点是检索速度快,缺点是需要消耗额外的空间与时间维护索引表
  • 散列存储:又称“哈希存储”,根据元素的关键字计算数元素的存储地址,优点是数据插入、删除、查找都很快,但是如果散列函数不够好,会出现存储单元冲突,解决冲突需要消耗额外的空间、时间

存储结构决定了一个算法的实现。

数据运算

  • 运算的定义:针对逻辑结构,指出运算能够实现的功能

  • 运算的实现:针对存储结构,指出运算的具体操作步骤

2 算法与算法评价指标

算法的概念

算法(Algorithm),是对特定问题求解步骤的描述。由有限的指令序列组成,指令表示一个或多个操作。

算法的特点

  • 有穷性:应该在执行有穷个步骤后结束,每个步骤的执行时间也应该是有穷的。
  • 确定性:每一条指令必须有确切的语义,相同的输入,应该输出相同的结果。
  • 可行性:算法中的描述,都应该可以通过已经实现的基本运算执行有限次来实现。
  • 输入:一个算法可以有输入,也可以没有输入
  • 输出:一个算法至少有一个输出

什么才是好的算法

  • 应该能够正确的求解问题——正确性
  • 应该易于理解——可读性
  • 输入非法数据时,应该能够做成恰当的处理——健壮性
  • 算法的执行时间应该尽可能的少——效率
  • 算法执行的整个过程中所需的最大存储空间应该尽可能的低——低存储需求

时间复杂度

算法的时间复杂度就是分析算法的时间开销与问题规模n之间的关系。

在这里插入图片描述

时间复杂度求解案例

在这里插入图片描述
问题1:是否可用忽略表达式的某些部分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题2:如果有成千上万行代码,还能按这种方式一行行的数?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

知识点总结

在这里插入图片描述

空间复杂度

空间复杂度分析的是一个算法内存开销与问题规模n之间的关系。

空间复杂度求解

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数递归调用时的空间复杂度分析

在这里插入图片描述
在这里插入图片描述

知识点总结

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值