计算之魂算法复杂度的相关概念
大O概念
算法的规范化和量化度量
图灵提出了计算机的数学模型,冯·诺依曼确定了计算机通用的系统结构,高德纳则奠定了计算机算法的基础。
在计算机科学中,更多的时候是需要顶层设计的,而不是从经验出发归纳总结。
高德纳的五件事:
- 计算机算法分析的鼻祖,提出了评估计算机算法的标准
- 编写了计算机科学领域的圣经——《计算机程序设计艺术》
- 最年轻的图灵奖获得者
- 编写了排版软件,Tex
- 是硅谷地区众多图灵奖获得者中名气最大、最会编程的人
大师们偶然为之的工作比二流人才穷其一生的发现有时还有影响力呢?因为除了能力的差异外,他们还有着遇到问题时解决问题的积极态度。任何人在前进的过程中都会遇到问题,但是对待问题的态度决定了个人的命运。
思考题
世界上还有什么产品类似于计算机,是软硬件分离的?
手机、物联网设备,不过他们都属于计算机的范畴了。扑克牌(软件就是规则,硬件指扑克牌本身)
大数和数量级的概念
考虑用一种公平、一致的评判方法对比不同算法的性能。
高德纳提出的思想包括三部分:
- 在比较算法的快慢时,只需要考虑数据量特别大,大到近乎无穷大的情况。
- 决定算法快慢的因素有很多,可以分为两类:第一类是不随数据量变化的因素,第二类是随数据量变化的因素
- 两种算法复杂度上相差哪怕一点,N很大后,效率可能就差出万亿倍
思考题
如果一个程序只运行一次,在编写它的时候,是采用最直观但是效率较低的算法,还是依然寻找复杂度最优的算法?
选择复杂度最优的算法,原因如下:
- 不能确保之后编写的程序是否有类似功能,能够提供参考
- 程序的数据量无法确定,如果数据量较大,复杂度最优的算法为佳
计算之魂算法复杂度的相关概念相关推荐
- 时间复杂度o(n^0.5)_算法基础1.1:算法复杂度计算(二)
1.什么是算法 2.好算法的标准 3.算法复杂度计算方法 例1: 1 int sum = 0;//运行1次2 int total = 0;//运行1次3 for (int i = 1; i <= ...
- 算法复杂度:算法时间复杂度和空间复杂度表示法
文章地址:http://lzw.me/a/algorithm-complexity.html 算法复杂度分为时间复杂度和空间复杂度. 时间复杂度用于度量算法执行的时间长短:而空间复杂度则是用于度量算法 ...
- [datawhale202208]计算之魂共读:怎样寻找最好的算法
结论速递 本次通过了解总和最大区间问题(即最大子序和)的四种时间复杂度的求解方法,直观地了解了算法复杂度和最优算法的关系. 同时,了解了对优化算法复杂度的判断包含三个内容:对问题边界的认知,对无用功的 ...
- 《计算之魂》Task2:怎样寻找最好的算法
<计算之魂>Task2 1. 问题描述 2. 解决方法 2.1 方法1:三重循环 2.2 方法2:两重循环 2.3 方法3:分治算法 2.4 方法4:正.反两遍扫描 2.4.1 通常情况下 ...
- [datawhale202208]计算之魂共读:算法规范化,大数和数量级的概念
结论速递 本次阅读了1.1及1.2章节. 1.1章节首先介绍计算机的软硬件分离历史,引出了程序算法独立存在的价值.并介绍了提出将算法进行量化度量的高德纳的五件闻名于世的事,强调了算法量化的重要性. 1 ...
- 字符串相似度计算工具和算法
一.fuzzywuzzy 介绍:JavaWuzzy是Java版的FuzzyWuzzy,用于计算字符串之间的匹配度. FuzzySearch.ratio(String s1, String s2) 全匹 ...
- 计算之魂 寻找最好的算法
寻找最好的算法 1. 实例 以总和最大区间问题为例: 给定一个实数序列,设计一个最有效的算法,找到一个总和最大的区间 暴力解法1:O(n3),暴力枚举左边界和右边界需要O(n2),计算边界内的和需要O ...
- 《计算之魂》读书笔记 04
<计算之魂>读书笔记 04 1.4 关于排序的讨论 [1.4.3]针对特殊情况,我们是否还有更好的答案? [附录]为什么排序算法的复杂度不可能小于 O(nlogn)O(nlogn)O(nl ...
- 《计算之魂》读书笔记
计算之魂(吴军) 引子 计算的本质--从机械到电子 第 1 章 毫厘千里之差--大O概念 1.1 算法的规范化和量化度量 软件为什么从计算机科学中分离出来? 最初计算机是用于计算,而拥有了计算的基础功 ...
最新文章
- 利用for循环完成你的第一个脚本
- Python:层次聚类分析——基于基站定位数据商圈分析
- Best Cow Line
- 保利协鑫多晶硅产量再创历史记录
- 【解决办法】你目前是以 ***的身份登录。请注销,然后使用你用于阅读组织电子邮件的帐户登录 Outlook
- svg defs 进行定义 引用
- tomcat内存设置
- [4G+5G专题-144]: 一体化小基站- 5G小基站硬件建议架构概述
- 论文阅读:2021 | CE-FPN: Enhancing Channel Information for Object Detection
- spconv编译与安装
- 使用U盘升级到win10系统
- python主函数怎么写_python主方法怎么写
- 创建简单vue项目 / Webpack创建vue项目
- 课程设计任务书本科毕业设计学生信息管理系统
- 高新计算机考试培训 ppt,全国计算机高新技术考试.ppt
- linux 修改文件的权限
- 软件测试周刊(第63期):凡是持久的,必是温和的与可持续的。
- 【文献调研】SLAM方向综述性论文
- 网贷查询接口开发 网贷黑名单查询 个人网贷黑名单查询
- Java 扫描微信公众号二维码,关注并自动登录网站