【Datawhale202208《吴军计算之魂》】
相关资料:
- 开源地址: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《吴军计算之魂》】相关推荐
- [datawhale202208]计算之魂共读:怎样寻找最好的算法
结论速递 本次通过了解总和最大区间问题(即最大子序和)的四种时间复杂度的求解方法,直观地了解了算法复杂度和最优算法的关系. 同时,了解了对优化算法复杂度的判断包含三个内容:对问题边界的认知,对无用功的 ...
- 《计算之魂》读书笔记
计算之魂(吴军) 引子 计算的本质--从机械到电子 第 1 章 毫厘千里之差--大O概念 1.1 算法的规范化和量化度量 软件为什么从计算机科学中分离出来? 最初计算机是用于计算,而拥有了计算的基础功 ...
- [datawhale202208]计算之魂共读:算法规范化,大数和数量级的概念
结论速递 本次阅读了1.1及1.2章节. 1.1章节首先介绍计算机的软硬件分离历史,引出了程序算法独立存在的价值.并介绍了提出将算法进行量化度量的高德纳的五件闻名于世的事,强调了算法量化的重要性. 1 ...
- 《计算之魂》读书笔记 04
<计算之魂>读书笔记 04 1.4 关于排序的讨论 [1.4.3]针对特殊情况,我们是否还有更好的答案? [附录]为什么排序算法的复杂度不可能小于 O(nlogn)O(nlogn)O(nl ...
- 计算之魂-计算的本质是机械运动
阅读吴军老师的新书 <计算之魂>,碰到有意思的内容,会在此做一个记录 计算的本质是机械运动 今天的电子计算机可以被理解成由很多能够被控制的开关构成,这些开关的运动和计算过程是对应的.也就是 ...
- 《计算之魂》--- 思考题0.3 【读书笔记】
<计算之魂>- 思考题0.3 题目如下 分别计算一下1946年的 ENIAC 和如今的 华为P30 在一度电的功耗下,能完成多少次计算. ENIAC 根据资料得知 ENIAC每秒计算500 ...
- 《计算之魂》阅读笔记 02
<计算之魂>阅读笔记 02 1.3 怎样寻找最好的算法 例题 1.3 方法一:三重循环 方法二:二重循环 方法三:分而治之 方法四:正反扫描 [思考题 1.3.1] [思考题 1.3.2] ...
- 计算之魂 寻找最好的算法
寻找最好的算法 1. 实例 以总和最大区间问题为例: 给定一个实数序列,设计一个最有效的算法,找到一个总和最大的区间 暴力解法1:O(n3),暴力枚举左边界和右边界需要O(n2),计算边界内的和需要O ...
- 《计算之魂》Task2:怎样寻找最好的算法
<计算之魂>Task2 1. 问题描述 2. 解决方法 2.1 方法1:三重循环 2.2 方法2:两重循环 2.3 方法3:分治算法 2.4 方法4:正.反两遍扫描 2.4.1 通常情况下 ...
最新文章
- 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系
- Dropout, DropConnect ——一个对输出,一个对输入
- 类属性、类方法;私有属性、公有属性;私有方法、公有方法;静态属性、静态方法;python的命名规范__xx__\__xx\_xx(自用笔记)
- Byte Cup 2018机器学习大赛进入冲刺阶段,最全资料帮你快速上手!
- 【ACM】nyoj_305_表达式求值_201308081018
- RDLC报表---自定义数据集
- 数字图像处理:各种变换滤波和噪声的类型和用途总结
- 这些工具类用起来真的很”香“
- train problem I (栈水题)
- MAX232无RS232电平信号输出、MAX232/3232硬件设计电路、电荷泵电容、max3221电路
- 线性表--算法设计题2.25
- WPF备忘录(1)有笑脸,有Popup
- 爬虫项目十三:用Python两分钟爬下微信公众号900篇文章
- win10u盘一直正在计算机,Windows10未插入U盘却一直显示的解决方法
- 去掉whatsns问答系统页面底部隐藏的官网链接
- php段子老板,程序员段子 那些关于程序员的段子
- 打印机怎么选择双面打印,支持双面打印资料的平台
- Debezium系列之:sqlserver数据库开启CDC
- PostgreSQL随笔
- 话说两个很好的PX4博客链接:记录一下咩。