Analysis of algorithms: introduction

一系列的人物角色

Programmer,client,theoretician和blocking

学生可能会承担里面的一个或者多个角色

Running time

提出running time这个概念的可能要追溯到很远的时候,那时通过analytic engine来计算how many times turn lthe crank(手柄)

为什么要分析算法

一些高效算法的例子

  

快速傅里叶变换:NlogN而不是N2,快速傅里叶变换应用在很多领域(DVD,JPEG...)

N-body simulation: NlogN,引入了一些新的研究

在解决大型问题时面临的挑战:用科学的方法去分析算法

用科学的方法去分析算法

实验reproducible是指你做出来与别人做出来得出的结果是一样的,可以重复做。

Hypotheses falsifiable是指hypotheses是可以被证明是错误的

时间: 2024-08-03 18:08:32

Analysis of algorithms: introduction的相关文章

《Mathematical Analysis of Algorithms》中有关“选择第t大的数”的算法分析

开头废话 这个问题是Donald.E.Knuth在他发表的论文Mathematical Analysis of Algorithms中提到的,这里对他的算法分析过程给出了更详细的解释. 问题描述: 给定一个数组a[1,2,...,n],用尽量少的比较次数找出数组中第t大的数.(假定这n个数两两不同). 算法描述: 对于这个问题,可以很容易想到对应的算法.一个 \(O(n\log n)\) 的排序算法总能解决问题(然鹅今天我们并不对数组进行完全的排序). 参照快速排序中的Partition操作,将

Analysis of algorithms: observation

例子: 3-Sum 给定N个整数,这里面有多少个三元组,使其三个整数相加为0,如上面的例子为有4个三元组. 这个问题是许多问题如计算机几何,图形学等的基础. 用简单粗暴的方式来解决3-Sum问题 通过三个for循环来执行 那么怎么计算它运行的时间呢? Java有一个内嵌的函数来计算运行时间:Stopwatch()           我们通过对不同的input size来运行获得运行时间,如上图所示,那么根据这些已得出来的值,我们可以推测出当input size为8K时,它的运行时间为多少吗?

612.1.002 ALGS4 | Analysis of Algorithms

我们生活在大数的时代 培养数量级的敏感! Tip:见招拆招 作为工程师,你先要能实现出来. 充实基础,没有什么不好意思 哪怕不完美.但是有时候完成比完美更重要. 之后再去想优化 P.S.作者Robert Sedgewick的导师是Knuth(高德纳!) Conclusion First 1.Running Time Operation table 2.Memory 1 SOP - Analysis 2 Observations Measuring the running time - autom

AlgorithmsI Exercises: Analysis of Algorithms

Question 1 Suppose that you time a program as a function of N and producethe following table. N seconds------------------- 1024 0.000 2048 0.001 4096 0.007 8192 0.029 16384 0.121 32768 0.519 65536 2.156 131072 9.182 262144 38.784 524288 164.585 10485

analysis of algorithms

1. 2. binary search (sorted array) 给定查找对象,array,以及最大最小的范围:将查找对象与middle作比较,进而改变最大最小的范围,然后调用递归 时间复杂度的计算要考虑最坏的情况,本题中最坏的情况类比一条面包每天吃一半几天吃完的问题,时间复杂度为log以2为底n的对数 O(log2 n)可以直接写成O(log n),与底数无关(换底公式可以将它们换成统一的底) 3. array的缺点有两个,第一个是fixed size,所以一开始就要给所有元素预留出足够的

Analysis of Algorithms--preface

Analysis of Algorithms: First part of the course is focused on analysis. Second part of the course is focused on design. The analysis of algorithm is the theoretical study.(算法分析是理论研究) The theoretical study of computer-program performance and resource

Latent Semantic Analysis(LSA)

背景:什么是LSA? Latent Semantic Analysis(LSA)中文翻译为潜语义分析,也被叫做Latent Semantic Indexing ( LSI ).意思是指通过分析一堆(不止一个)文档去发现这些文档中潜在的意思和概念,什么叫潜在的意思?我第一次看到这个解释,直接懵逼.其实就是发现文档的中心主题吧?假设每个词仅表示一个概念,并且每个概念仅仅被一个词所描述,LSA将非常简单(从词到概念存在一个简单的映射关系). 根据常识我们知道两个很常见的语言现象:1. 存在不同的词表示

370 门免费编程与计算机科学在线课程

简评:这篇文章为大家整理出 370 门精选的免费高质量编程计算机科学类的课程(涵盖程序语言.人工智能.深度学习与机器学习等热门话题).这370 门课程是从 Class Central数据库里面的 7000 门课程挑选出来的,每个课程的 Rating(评价)也是由该网站上获取下来的平均值. 370 门课程里面根据难易程度被分为: 入门 中级 进阶 所收录的大部分教程都已经更新完毕了,你可以按照自己的节奏(Self Paced)随时观看学习,有小部分教程还在持续更新至中,当然了,它们全都是免费的!

Awesome Machine Learning

Awesome Machine Learning  A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome-php. If you want to contribute to this list (please do), send me a pull request or contact me @josephmisiti Als