出处:https://space.bilibili.com/19658621/dynamic
该视频知识产权为B站Micro_Frank所有。
Frank语录:
本门课的目的是将数据结构与代码脱离开来,这是传统教育很难做到的。
了解思想比一个题做个十遍顶用多了。
可以结合每个视频中的问题看看自己能否回答出来
一、Academic
0-0.剖析数据结构的含义,数据结构的用途,区分数据结构与算法
- 什么是数据结构?
数据结构(英语:data structure)是计算机中存储,组织数据的方式。
总的来说就是(1)数据的(2)存储与(3)组织。
- 分别解释其含义?
1)数据:比如我们的QQ号,微信ID,支付密码了;这些都叫数据;
2)存储:以何种方式存放数据,链表,数组,树,图。。。
3)组织:CRUD增删改查;
线性表就是数组,国际上没有线性表这个词,是我们直译过来的;
- 数据结构与算法的关系?
他们并不是与关系,不是学数据结构我就要一定会算法,这是我国的教育方式罢了;算法只是研究组织数据结构最优的CRUD解。它是更好的,更有效地对数据存储。
1-0.内存,内存是如何保存不同数据类型的
1)数据在内存中存储应该是什么样的?
内存条中像图中的每一个单元格都是有自己的地址,一个格子可以是一个字节,那么如果要存取一个大型数据(比如一个4字节的数据),就必须存储在连续的单元格。

拿int(占用4个字节)举例,有数组 int arr[1,2];
假如1号单元格已被占用,那么,如果我们存储数组中的1,就必须重新分配一个连续的空间,比如2,3,4,5;
生活中的例子:
住院部,几个病人要求住在连续序号的房间中;
1-1.int类型的范围是如何计算的?为什么会占用四个字节?四个字节为什么可以表示该范围?内存中是怎样的
语言不重要。
1)在c/c++中:
不同的编程语言中取值范围是不同的。在c/c++语言中int范围取决于字长。 字长是计算机处理的最大位数,与cpu有关。所以了,在32位机器上,字长就是32位,此时表示范围:2^32。
考虑正负号(有符号位):表示范围为-(231)~(231)-1
不考虑正负号( 无符号位):表示范围为 0~(2^32)-1
2)python:
python中int范围表示是无限的。
2-0.Computational Analysis of algorithms计算机算法复杂度分析的基本含义
引出时间复杂度与空间复杂度。
以从不同的目的地去往市中心为例子,如下图:

去往市中心(downtown)有三个地点(a,b,c),从图中看出三地路程不尽相同。
而去往downtown的快慢取决于路的远近和所使用的交通工具。现在呢,从a,b,c地都有人出发去往市中心,a地乘客使用飞机,b地乘客使用拖拉机,c地乘客使用汽车。最终,a先到达,b最后到达。从这个例子中我们发现,不是路程近就能先到达,它与两个因素都有关。计算机同理。
在计算机中我们可以把路程比作空间复杂度,所使用的交通工具比作时间复杂度。我们通常所说的时间复杂度是使用相同计算能力的机器,考虑如何在更短的时间能够完成任务。
在计算机中,空间复杂度难以度量。
3-0.Big O notation复杂度标记符以及举例
1)该如何理解这些复杂度的数值?
以数组为例
O(1) 查找某个病房的住的是谁
O(n)医生早上查病房,每个病

本文详细介绍了数据结构的概念,包括数据、存储和组织,以及数据结构与算法的区别。讨论了内存中数据的存储方式,数组和链表的特性,以及时间复杂度和空间复杂度的分析。此外,还涉及了哈希表、栈、队列、树和图等基本数据结构及其应用。

441

被折叠的 条评论
为什么被折叠?



