相关资料:

  • 开源地址:https://github.com/siyuxin/exercises-of-the-soul-of-calculation
  • 开源内容:https://linklearner.com/datawhale-homepage/#/learn/detail/107
  • 视频地址:https://www.bilibili.com/video/BV1Qd4y1271w
  • 幕布导图:https://www.mubucm.com/doc/42vIoMIREVG

第1章 毫厘千里之差——大O概念

1.1 算法的规范化和量化度量

  早期计算机以硬件为主,直到计算机的商用,人们开始重视程序设计的合理性、效率等方面,也就是程序软件实现,为这个问题做了巨大贡献的是高德纳,他弥补了计算机算法理论的缺陷,是计算机算法理论的奠基人。本节后面介绍了高德纳的五件使其闻名的大事,给到感悟:任何人在前进的过程中都会遇到问题,但是对待问题的态度决定了个人的命运

1.2 大数和数量级的概念

本节通过一些例子直观的解释了大数以及数量级的概念,特别是芝麻与西瓜的例子。若程序只运行一次,作为一名优秀的程序员,我们要去寻找算法度最优的算法,这也是作为程序员的使命。

1.3 怎样寻找最好的算法

  • 在计算机科学中有时没有标准答案或者最佳答案,却有好的方法和平庸的方法之分。
  • 真正能够将计算机算法灵活应用的人,都需要领悟计算机科学的精妙之处。
  • 人的思维很多时候和计算机科学应有的思维是矛盾的,要成为一流的计算机科学家或工程师,需要有意识地改变自己的思维方式,突破常规

1.4 关于排序的讨论

要尽可能地避免那些做了大量无用功的方法,一旦不小心采用了那样的方法,带来的危害有时是灾难性的;接近理论最佳值的算法可能有很多种,考虑到多维度的考量,有时没有绝对好的算法,在一定条件下,表现得比其他算法更加优秀!在衡量算法时,我们要假定要处理的数据规模巨大,要近乎无穷

附录 为什么排序算法的复杂度不可能小于O(NlogN)

排序的耗时一定大于最少比较的耗时,也就是说最少比较次数所花费的时间就是排序耗时的一个下界;定义序列的大小,在给定n个元素的序列里面找到其最小的序列就是排序;n个元素的序列至少需要比较logn!次才能得到最小序列,经过斯特林公式计算logn!近似与O(nlogn),这就是排序的下界了。

【Datawhale202208《吴军计算之魂》】相关推荐

  1. [datawhale202208]计算之魂共读:怎样寻找最好的算法

    结论速递 本次通过了解总和最大区间问题(即最大子序和)的四种时间复杂度的求解方法,直观地了解了算法复杂度和最优算法的关系. 同时,了解了对优化算法复杂度的判断包含三个内容:对问题边界的认知,对无用功的 ...

  2. 《计算之魂》读书笔记

    计算之魂(吴军) 引子 计算的本质--从机械到电子 第 1 章 毫厘千里之差--大O概念 1.1 算法的规范化和量化度量 软件为什么从计算机科学中分离出来? 最初计算机是用于计算,而拥有了计算的基础功 ...

  3. [datawhale202208]计算之魂共读:算法规范化,大数和数量级的概念

    结论速递 本次阅读了1.1及1.2章节. 1.1章节首先介绍计算机的软硬件分离历史,引出了程序算法独立存在的价值.并介绍了提出将算法进行量化度量的高德纳的五件闻名于世的事,强调了算法量化的重要性. 1 ...

  4. 《计算之魂》读书笔记 04

    <计算之魂>读书笔记 04 1.4 关于排序的讨论 [1.4.3]针对特殊情况,我们是否还有更好的答案? [附录]为什么排序算法的复杂度不可能小于 O(nlogn)O(nlogn)O(nl ...

  5. 计算之魂-计算的本质是机械运动

    阅读吴军老师的新书 <计算之魂>,碰到有意思的内容,会在此做一个记录 计算的本质是机械运动 今天的电子计算机可以被理解成由很多能够被控制的开关构成,这些开关的运动和计算过程是对应的.也就是 ...

  6. 《计算之魂》--- 思考题0.3 【读书笔记】

    <计算之魂>- 思考题0.3 题目如下 分别计算一下1946年的 ENIAC 和如今的 华为P30 在一度电的功耗下,能完成多少次计算. ENIAC 根据资料得知 ENIAC每秒计算500 ...

  7. 《计算之魂》阅读笔记 02

    <计算之魂>阅读笔记 02 1.3 怎样寻找最好的算法 例题 1.3 方法一:三重循环 方法二:二重循环 方法三:分而治之 方法四:正反扫描 [思考题 1.3.1] [思考题 1.3.2] ...

  8. 计算之魂 寻找最好的算法

    寻找最好的算法 1. 实例 以总和最大区间问题为例: 给定一个实数序列,设计一个最有效的算法,找到一个总和最大的区间 暴力解法1:O(n3),暴力枚举左边界和右边界需要O(n2),计算边界内的和需要O ...

  9. 《计算之魂》Task2:怎样寻找最好的算法

    <计算之魂>Task2 1. 问题描述 2. 解决方法 2.1 方法1:三重循环 2.2 方法2:两重循环 2.3 方法3:分治算法 2.4 方法4:正.反两遍扫描 2.4.1 通常情况下 ...

最新文章

  1. 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系
  2. Dropout, DropConnect ——一个对输出,一个对输入
  3. 类属性、类方法;私有属性、公有属性;私有方法、公有方法;静态属性、静态方法;python的命名规范__xx__\__xx\_xx(自用笔记)
  4. Byte Cup 2018机器学习大赛进入冲刺阶段,最全资料帮你快速上手!
  5. 【ACM】nyoj_305_表达式求值_201308081018
  6. RDLC报表---自定义数据集
  7. 数字图像处理:各种变换滤波和噪声的类型和用途总结
  8. 这些工具类用起来真的很”香“
  9. train problem I (栈水题)
  10. MAX232无RS232电平信号输出、MAX232/3232硬件设计电路、电荷泵电容、max3221电路
  11. 线性表--算法设计题2.25
  12. WPF备忘录(1)有笑脸,有Popup
  13. 爬虫项目十三:用Python两分钟爬下微信公众号900篇文章
  14. win10u盘一直正在计算机,Windows10未插入U盘却一直显示的解决方法
  15. 去掉whatsns问答系统页面底部隐藏的官网链接
  16. php段子老板,程序员段子 那些关于程序员的段子
  17. 打印机怎么选择双面打印,支持双面打印资料的平台
  18. Debezium系列之:sqlserver数据库开启CDC
  19. PostgreSQL随笔
  20. 话说两个很好的PX4博客链接:记录一下咩。

热门文章

  1. Python《植物大战僵尸》代码实现:植物卡片选择和种植
  2. 力扣刷题学习SQL篇——1-8 查询(按日期分组销售产品——利用聚合函数GROUP_CONCAT)
  3. 常用的数控刀具牌号,买刀的时候少走弯路
  4. 2019年万围科技共享单车管理解决方案与技术支持
  5. PowerBI基础——第二天 最强大的引擎calculate、筛选表calculatetable、高级筛选器filter
  6. 萤石云添加设备提示高风险需要确权的处理方法
  7. pytorch之Resize()函数
  8. 测试 文章 与测试用例
  9. citespace的使用
  10. 2015-2016规划