文章目录
- 1. 什么是数据结构
- 定义
- 举例
- CRUD难道不是都一样吗?
- 总结
- 2. 什么是算法
- 3. 数据结构与算法的联系
- 举例
- 4. 推荐
1. 什么是数据结构
定义
数据结构(data structure)是计算机中存储、组织数据的方式。
关键词:① 数据 ② 存储 ③ 组织
举例
以手机通讯录存储联系人为例:
① 数据:人名、手机号
② 存储数据的方式:列表(list)
③ 组织:CRUD(增删改查,计算机中的缩写)
增 – 增加一个联系人信息
删 – 删除一个联系人信息
改 – 修改联系人信息(如:改备注)
查 – 查询某个联系人的信息(如:查手机号)
这里的增删改查都是相对于组织而言的
结论:数据结构这门学科,无非就是跟数据有关。关于数据我们要研究两个东西,一个是数据的存储方式,另一个是数据如何CRUD。
CRUD难道不是都一样吗?
结论:不一样
解释:以快递格子(二维静态数组)为例,它的特别之处在于 有行、列之分。这个世界上有很多不同的结构(不同的存储方式),例如:列表、二维数组、树、图、线性表(这个词在国际上不存在,在国际面试时 就说array-数组,没有别的词)。 对于这个格子,我们可以查和改,但是没法增和删(因为这个箱子是固定的,总不能把箱子给砸了)。
数组有一维、二维以及动态、静态之分。上述内容其实也可以用一维静态数组存储。
总结
① 数据结构其实跟日常生活非常密切
② 数据结构三大点:1.必须要有数据的操作;2.数据是怎么存储的;3.数据是怎么组织的
③ 这个数据是如何存储的,就决定了这个数据如何组织(CRUD)。
2. 什么是算法
算法就是解决问题采用的步骤和方法
算法的目的:算法就是为了研究组织数据结构的最优CRUD解(例如:这个数据我们怎么更快地查出来、这个数据我们怎么更快地去添加、这个数据我们怎么更快地修改、这个数据我们怎么更快地删除)。简单来说就是为了解决 “如何更好地组织数据” 这个问题。
3. 数据结构与算法的联系
数据结构和算法是有关系的,但不是从属关系,不是并列关系,也不是相互影响的关系。组织是数据结构中一个核心的部分,但是我们如何更科学、更高效、更优等地组织,这就需要用到算法,算法是处于 “如何组织” 这一部分的。
数据结构与算法之间存在一个清晰的逻辑:1. 必须先搞清楚数据是什么(例如:我们用的QQ号、QQ密码、支付密码、个人信息等都存到服务器上的东西都可以称为数据);2. 然后考虑如何解决这些数据(很重要)。数据结构的目的就是为了研究怎么存储这些数据、怎么组织这些数据,然后告诉你有哪些组织方式,在什么情况下用什么组织方式更好(例如用格子管理快递、用列表管理联系人) 3. 如果条件允许的话,可以进一步考虑一下如何更好地组织这些数据(这就用到了算法)。
举例
一 、情景:
记者: 请问1-20里,您喜欢哪些数字呢
路人甲:11、3、5、7、8
记者:请问1-20里,您喜欢哪些数字呢
路人乙:12、8、9。刚刚那个人和我一样喜欢8这个数字么?
记者:稍等一下,我查一下,我刚刚记录了。是的,她也喜欢。
二、 分析:
数据结构:
数据:路人甲和路人乙回复的数字
存储:此处采用两个一维数组a[30]、b[30]
组织:在数组a[30]中查询数字4的过程。可以采用for循环遍历数组,看看数组里是否有数字4。
算法:怎么更快的查询。可以采用二分查找
4. 推荐
笔记来源:直面数据结构课程