程序员的数学基础课
黄申
LinkedIn 资深数据科学家
83374 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
导读 (1讲)
基础思想篇 (18讲)
程序员的数学基础课
15
15
1.0x
00:00/00:00
登录|注册

18 | 总结课:数据结构、编程语句和基础算法体现了哪些数学思想?

运算优先级、数量级、多元变量等
解决八皇后和0/1背包问题
RK(Rabin-Karp)算法
轮询和源地址哈希算法
MapReduce的数据切分
递归调用体现排列组合的思想
用于迭代法的实现
布尔表达式体现逻辑代数
顶点和边的表示
先进先出
实现基于递归的编程
通过哈希函数解决冲突
表示矩阵
动态插入和删除
适合稀疏数列
常与循环语句相结合
适合快速随机访问
数据结构和算法中的数学思想
算法复杂度分析
回溯算法
字符串匹配算法
负载均衡算法
分治思想
函数调用
循环语句
条件语句
图模型
队列
哈希表
多维数组
链表
数组
思考题
基础算法
编程语句
数据结构
数据结构、编程语句和基础算法体现了哪些数学思想?

该思维导图由 AI 生成,仅供参考

你好,我是黄申。
之前的 17 讲,我们从小处着眼,介绍了离散数学中最常用的一些知识点。我讲到了很多数据结构、编程语句和基础性算法。这些知识点看似是孤立的,但是内部其实有很多联系。今天这一节,我们就来总结一下前面讲过的内容,把之前讲过的内容串联起来。

数据结构

首先,我们来看一些基本的数据结构,你可别小看这些数据结构,它们其实就是一个个解决问题的“模型”。有了这些模型,你就能把一个个具体的问题抽象化,然后再来解决。
我们从最简单的数据结构数组开始说。自从你开始接触计算机编程,数组一定是你经常使用的数据结构。它的特点你应该很清楚。数组可以通过下标,直接定位到所需的数据,因此数组特别适合快速地随机访问。它常常和循环语句相结合,来实现迭代法,例如二分查找、斐波那契数列等等。
另外,我们将要在“线性代数篇”介绍的矩阵,也可以使用多维数组来表示。不过,数组只对稠密的数列更有效。如果数列非常稀疏,那么很多数组的元素就是无效值,浪费了存储空间。此外,数组中元素的插入和删除也比较麻烦,需要进行数据的批量移动。
那么对于稀疏的数列而言,什么样的数据结构更有效呢?答案是链表。链表中的结点存储了数据,而链表结点之间的相连关系,在 C 和 C++ 语言中是通过指针来实现的,而在 Java 语言中是通过对象引用来实现的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

数据结构、编程语句和基础算法体现了离散数学中的数学思想。文章从基本的数据结构数组和链表开始,介绍了它们的特点和应用。数组适合快速随机访问,而链表适合稀疏数列和动态插入删除。进一步讨论了哈希表、栈和队列等复杂数据结构,以及它们在实际系统中的应用。此外,还涉及了图论中的各种模型,如多叉树、有向图和无向图,以及它们的实现方式。文章强调了这些数据结构和算法的数学思想,如递归、深度优先搜索和广度优先搜索,以及它们在实际编程中的应用。整体而言,本文通过具体的数据结构和算法,展现了离散数学中的数学思想在计算机编程中的重要性和应用价值。 在编程语句方面,文章介绍了条件语句、循环语句和函数调用的基本概念,并指出它们体现了逻辑代数、迭代法和排列组合等数学思想。此外,还探讨了SQL语言中的Select语句和布尔检索模型,以及在编程中的应用。 基础算法部分介绍了分治思想、负载均衡算法、字符串匹配算法和回溯算法等,强调了这些算法中的数学思想在解决特定问题时的重要性。同时,文章从数学的角度出发,总结了常用的法则,如四则运算、主次分明、齐头并进、排列组合、一图千言和时空互换,体现了数学在算法复杂度分析中的应用。 总的来说,本文通过对数据结构、编程语句和基础算法中的数学思想进行梳理,展现了数学在计算机编程中的广泛应用和重要性。读者可以从中快速了解到这些技术领域中数学思想的重要作用,以及如何运用数学思维来优化数据结构和算法。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员的数学基础课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • hua168
    老师,问3个很重要的题外问题: 1. 大专学历,想直接自学考本科或研究生,自考学历中大型公司承认的吗? 2. 大公司对年龄有限制的吗? 3. 30多岁,运维,只有小公司工作经验,技术一般,发展方向是什么? 很多IT公司好像都不要年龄大点的~~人生80,那不是40岁就没得工作了?

    作者回复: 我一个个来回答 第一个,我个人对这方面不太清楚,不过我觉得关键看结果,如果你能考上大学,拿到合格的文凭,应该就没问题。具体你可以咨询一下大公司的人事。 第二个,一般情况下没有特殊要求,关键看你牛不牛。 第三个,这个很难给出一个具体的答案,要看你个人的兴趣和特长,如果能找到一个结合点就最好了。 至于年龄问题,我觉得如果一个公司只看年龄,那就太片面了。从另一个方面来考虑,我们自己也要不断地充电,才不会被时代所淘汰。

    2019-01-23
    7
    30
  • 草原上的奔跑
    本篇黄申老师讲了数学的思想在编程里的具体实践落地,讲的太好了。数据结构,编程语句,基础算法,这些都有数学的思想在里面。之前自己没有去联想它们,造成的结果就是数学的思想悬在空中,写代码是写代码,数学思想是数学思想,两者不沾边,偶尔两者会碰撞一下,就会觉的很开心。黄申老师在这里给我指明了方向,让数学思想实际内化到编程之中,编程背后的逻辑支撑,提供给了我们为什么这么做的理由。想起来一句话,知识点我都知道,但是,实际去做,去把知识点串联起来,融会贯通,我就不知道了!!!

    作者回复: 很高兴我的专栏能给你带来帮助!在后面的几大模块中,我会继续发挥这种风格

    2019-01-25
    9
  • Leeby
    计算机的世界,语文、数学、英语都得可以!

    作者回复: 这就是为啥当时高考语数外是必考的原因🙂

    2020-03-20
    2
    5
  • 建强
    工作中经常用到的数据结构: 1.数组,体系了线性代数中,向量运算的思想。 2.关系性数据库的二维表,对二维表的操作体现了数学中集合运算的思想。

    作者回复: 是的

    2020-03-29
    3
  • 失火的夏天
    老师,我回来二刷了,二叉查找树可不可以认为是数学中指对互化,其实就是对数化的思想,利用了对数级别的导数不大。动态规划方程其实就是数学归纳法的思想,一开始先初始化,然后在x=n的情况下,写出x=n+1的式子。然后就可以递推和归纳了。计算机世界里,数学无处不在。

    作者回复: 感谢再次回来😊 二叉树确实可以看做以二为底的指数互化,分别是叶子节点数量和树的高度

    2019-12-28
    3
  • 木刻
    老师的造诣让人望尘莫及啊,我这辈子是不行了😂

    作者回复: 多多实践和总结,你也会有自己的独到的见解和心得 ☺️

    2019-03-24
    3
  • Boxing
    老师阶段性总结的非常棒。希望老师在后面课程讲得更接地气,通俗易懂,谢谢!

    作者回复: 我会继续加油💪

    2019-03-19
    3
  • 学习学个屁
    数组,链表,hash表,队列,栈这些用的最多

    作者回复: 没错,熟悉掌握这些对编程太有帮助了

    2019-12-26
    2
  • 栾~龟虽寿!
    真的感谢老师,我感觉钱花的太值了。

    作者回复: 很高兴这门课程对你有帮助!

    2019-05-05
    1
  • Jerry银银
    很喜欢今天的文章。把编程中的细节和数学关联,让人茅塞顿开
    2019-01-23
    6
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部