【数据结构】学习笔记之基本概念

本文为《数据结构》学习笔记,探讨了数据结构的概念及其重要性,包括数据内部组织方式、抽象空间利用效率及与算法的关系,并介绍了抽象数据类型(ADT)。适合用于复习和初学者入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感觉自己在《数据结构》方面的知识不是太扎实,所以借博客写一些自己复习的笔记。一方面是为了培养自己动手的习惯,另一方面是为了留给需要的人。

注:本文材料来自浙江大学Mooc《数据结构》

1.什么是数据结构

“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”
—— SartajSahni,《数据结构、算法与应用》

“数据结构是ADT(抽象数据类型 Abstract DataType)的物理实现。”———— Clifford A.Shaffer,《数据结构与算法分析》

“数据结构(data structure)是计算机中存储、组织
数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。”——中文维基百科

2.为什么要有数据结构

数据结构包含数据内部组织方式
数据结构包含对抽象空间的利用效率
数据结构与算法息息相关

抽象数据类型(ADT)

研究数据结构必需的一个概念

数据类型

 数据对象集
 数据集合相关联的操作集

抽象:描述数据类型的方法不依赖于具体实现

 与存放数据的机器无关
 与数据存储的物理结构无关
 与实现操作的算法和编程语言均无关

只描述数据对象集和相关操作集“是什么”,并不涉及“如何做到”的问题

算法

 一个有限指令集
 接受一些输入(有些情况下不需要输入)
 产生输出
 一定在有限步骤之后终止
 每一条指令必须

有充分的明确的目标,不可以有歧义
计算机能处理的范围之内
描述应不依赖于任何一种计算机语言以及具体的实现手段

什么是好的算法?

 空间复杂度S(n) —— 根据算法写成的程序在执行时占用存储单元的长度。这个长度往往与输入数据的规模有关。空间复杂度过高的算法可能导致使用的内存超限,造成程序非正常中断。
 时间复杂度T(n) —— 根据算法写成的程序在执行时耗费时间的长度。这个长度往往也与输入数据的规模有关。时间复杂度过高的低效算法可能导致我们在有生之年都等不到运行结果。

在分析一般算法的效率时,我们经常关注下面两种复杂度

 最坏情况复杂度T1
 平均复杂度T2

由于T2仍要考虑平均的基数,所以一般采用T1去评判算法复杂度

复杂度的渐进表示法

这里写图片描述

复杂度分析小窍门

这里写图片描述

完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值