数据结构与算法的联系(笔记)

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. 推荐

笔记来源:直面数据结构课程

相关推荐

  1. 解密数据之谜:算法数据结构奇妙联动

    2024-07-11 17:24:04       41 阅读
  2. 算法】【数据结构算法数据结构关系

    2024-07-11 17:24:04       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 17:24:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 17:24:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 17:24:04       62 阅读
  4. Python语言-面向对象

    2024-07-11 17:24:04       72 阅读

热门阅读

  1. 通过配置IP路由解决多网卡配置同网段IP的问题

    2024-07-11 17:24:04       23 阅读
  2. ArduPilot开源代码之OpticalFlow_backend

    2024-07-11 17:24:04       25 阅读
  3. Postman API测试覆盖率:全面评估指南

    2024-07-11 17:24:04       23 阅读
  4. OpenHarmony移植小型系统exynos4412(三)

    2024-07-11 17:24:04       24 阅读
  5. 达梦数据库系列—26. DSC主备搭建

    2024-07-11 17:24:04       19 阅读
  6. Mybatis进阶の常用配置&级联查询

    2024-07-11 17:24:04       25 阅读
  7. 【MyBatis】MyBatis 理论 40 问(二)

    2024-07-11 17:24:04       23 阅读
  8. Android --- Kotlin学习之路:Okhttp 同步异步网络请求

    2024-07-11 17:24:04       21 阅读
  9. tomcat

    tomcat

    2024-07-11 17:24:04      20 阅读
  10. 探索 GraphRAG:图结构与生成式模型的融合

    2024-07-11 17:24:04       25 阅读
  11. 全国青少年信息素养大赛:排序专项:奇偶排序

    2024-07-11 17:24:04       19 阅读
  12. 主题乐园用户增长分析专项报告

    2024-07-11 17:24:04       25 阅读