算法分析 Analysis of Algorithms 为什么要做性能分析?Why performance analysis? 在计算机领域有很多重要的因素我们要考虑 比如用户友好度,模块化, 安全性,可维护性 等等.但是为什么要关心性能呢? 原因很简单,如果有了很好的性能,我们就可以实现以上那些.所以性能相当于货币,有了货币我们就可以购买其他的东西.另外一个原因是研究proformance 非常有趣. 两个算法,到底哪一个好呢?Given two algorithms for a task,…
开头废话 这个问题是Donald.E.Knuth在他发表的论文Mathematical Analysis of Algorithms中提到的,这里对他的算法分析过程给出了更详细的解释. 问题描述: 给定一个数组a[1,2,...,n],用尽量少的比较次数找出数组中第t大的数.(假定这n个数两两不同). 算法描述: 对于这个问题,可以很容易想到对应的算法.一个 \(O(n\log n)\) 的排序算法总能解决问题(然鹅今天我们并不对数组进行完全的排序). 参照快速排序中的Partition操作,将…
"Mathematical Analysis of Algorithms" 阅读心得 "Mathematical Analysis of Algorithms"是著名计算机界大神Knuth在1971年发表的论文.以前只是听说Knuth非常神,看了这篇论文才体会到Knuth到底有多神-Orz 此外,特别感谢 @solaaaaa 聚聚,没有他的指导我可能根本看不懂这篇论文-... 这篇文章要解决什么问题? 作为算法分析这一领域的早期论文,这篇文章回答了以下两个问题: 算…
课程信息 6.046 Design and Analysis of Algorithms…
问题描述 把数列\((x_1,x_2,\cdots,x_n)\)变换顺序为\((x_{p(1)},x_{p(2)},\cdots,x_{p(n)})\),其中\(p\)是\(A=\{1,2,3,\cdots,n\}\)的一个排列,要求只使用\(O(1)\)的额外空间.例如,当数列为\((10,20,30,40)\),\(p\)为\((3,1,2,4)\)时得到的数列是\((30,10,20,40)\). 算法描述 对于映射\(p:A\rightarrow A\),它的含义是"排列后的数组每个元素…
算法分析 Introduction 有各种原因要求我们分析算法,像预测算法性能,比较不同算法优劣等,其中很实际的一条原因是为了避免性能错误,要对自己算法的性能有个概念. 科学方法(scientific method)也适用于算法分析,它提供了一个预测性能和比较算法的框架: Observe 观察真实世界的某些特征 Hypothesize 根据观察结果提出假设模型 Predict 用模型预测未来的事件 Verify 继续观察来核实预测的准确性 Validate 重复直到预测和观察一致 此外还有两条原…
我们生活在大数的时代 培养数量级的敏感! 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…
例子: 3-Sum 给定N个整数,这里面有多少个三元组,使其三个整数相加为0,如上面的例子为有4个三元组. 这个问题是许多问题如计算机几何,图形学等的基础. 用简单粗暴的方式来解决3-Sum问题 通过三个for循环来执行 那么怎么计算它运行的时间呢? Java有一个内嵌的函数来计算运行时间:Stopwatch()           我们通过对不同的input size来运行获得运行时间,如上图所示,那么根据这些已得出来的值,我们可以推测出当input size为8K时,它的运行时间为多少吗?…
时间复杂性的计算一般而言,较小的问题所需要的运行时间通常要比较大的问题所需要的时间少.设一个程序P所占用的时间为T,则 T(P)=编译时间+运行时间. 编译时间与实例特征是无关的,且可假设一个编译过的程序可以运行多次而无需再编译.因此分析程序的时间特性就只需考虑程序的运行时间. 令程序P的运行时间为tp(n),其中n是所要求解问题的实例特征.由于编写程序时,影响tp的许多因素还是未知的,所以只能对tp进行估算.由于代码P的主要操作通常包括加.减.乘.除.比较.读.写等,而这些操作的执行时间是可预…
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…
算法(Algorithm)是指用来操作数据.解决程序问题的一组方法.对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消耗的资源和时间却会有很大的区别,比如快速排序与猴子排序. 算法稳定性分析. 一般研究算法性能会考虑复杂度问题居多,此外也会有算法的稳定性分析. 稳定性 根据个人研读论文后的浅薄观点归纳得到,[会一直更新] 对于一般的处理算法而言,稳定性主要由以下方面衡量: 1.当随着样本数量增加,或者试验次数的增加…
一系列的人物角色 Programmer,client,theoretician和blocking 学生可能会承担里面的一个或者多个角色 Running time 提出running time这个概念的可能要追溯到很远的时候,那时通过analytic engine来计算how many times turn lthe crank(手柄) 为什么要分析算法 一些高效算法的例子    快速傅里叶变换:NlogN而不是N2,快速傅里叶变换应用在很多领域(DVD,JPEG...) N-body simul…
本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. Leiserson和Erik Demaine老师的讲解.(http://v.163.com/special/opencourse/algorithms.html) 第一节-------课程简介及算法分析 Analysis of algorithm 算法分析:关于计算机程序在效率和资源利用方面的理论…
A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components Analysis, February 26, 2002. 翻译:houchaoqun.时间:2017/01/18.出处:http://blog.csdn.net/houchaoqun_xmu  |  http://blog.csdn.net/Houchaoqun_XMU/article/details…
论文地址:面向基于深度学习的语音增强模型压缩 论文代码:没开源,鼓励大家去向作者要呀,作者是中国人,在语音增强领域 深耕多年 引用格式:Tan K, Wang D L. Towards model compression for deep learning based speech enhancem…
编程入门指南 v1.4 Badger · 8 个月前 作者:@萧井陌, @Badger 自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 CoCode:一个让大家学习.成长.相聚并获得乐趣的技术社区 编程入门指南 一群(243545867):编程入门指南 二群(438379133) 答疑邮箱: xiao.gua@outlook.com (@萧井陌) v2.0 准备重构 2015年06月07日 v1.4 更新 2015年04月16日 v1.3 更新…
c语言系统学习与进阶: 1. C primer plus C primer plus 作为一本被人推崇备至的 c 入门经典,C primer plus 绝非浪得虚名.应该 算得上 C 教材里最好的入门书了.    在知识广度上,很少有书能匹及.它能为你系统学习 c 提供一个良好的平台.作者对 c 的见解精辟.在娓娓叙述的同时,作者辅以大量程序以分析.它让我对 C 有了更加系统的全 新认识.决非国人所写的那些公理化的教条说教,我觉得作者把自己的心血全部吐露.书很 厚,近 700 页,却不没有让我觉…
第一部分 Analysis of Algorithms 算法分析是关于计算机程序性能(performance)和资源利用的理论研究 1 What's more important than performance? |-Correctness正确性 |-Simplicity简洁性 |-Maintainability可维护性 |-Robustness鲁棒性 |-Features(Functionality.Modularity) |-Security |-Scalability可扩展性 |-Use…
计算机视觉中的边缘检测   边缘检测是计算机视觉中最重要的概念之一.这是一个很直观的概念,在一个图像上运行图像检测应该只输出边缘,与素描比较相似.我的目标不仅是清晰地解释边缘检测是怎样工作的,同时也提供一个新而又容易的方法只需要最小工作来明显地提高边缘检测. 通过获得这些边缘,许多计算机算法才得以有可能实现,因为在一个场景中边缘包含着绝大部分(至少很多)的信息. 举个例子,我们都记得 Windows XP 的那个绿色小山坡和蓝色天空的背景. 当我们的大脑试图去理解这个场景时,我们知道这是草地,看…
下载方式 根据你的操作系统下载不同的 BiliDrive 二进制. 执行: bilidrive download <link> 链接 文档 链接 斯坦福 cs224d 深度学习与自然语言处理讲义.epub (2.87 MB) bdrive://2771ca27aa5f0eb73bcf9591ee127c2d51270617 Matplotlib 用户指南.epub (4.67 MB) bdrive://0376e03bdbf46d1670cd8d955ccde094e226a2f8 OllyD…
[it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Objective-C to develop iPhone games http://it-ebooks.info/book/3544/Learning Web App Development || Build Quickly with Proven JavaScript Techniques http:…
昨天一不小心误删了xamarin 开发环境下的虚拟设备网络设备.名称为:vEthernet(internal Ethernet Port Windows Phone Emulator).导致原来能正确运行的代码已经无法通过编辑,提示了12个错误出来,而且是无法导航到具体错误的方式.查资料无法找到相关方法.后来在查看错误的时候发现有个叫FIPS 验证的加密算法的东西,接着尝试的原则实验后发现解决,问题.现记录如下: windoows客户端程序在中文win7操作系统上安装正常,在一台英文win7操作…
http://stackoverflow.com/jobs/116486/software-development-engineer-database-services-amazon?med=clc&ref=small-sidebar-tag-themed-python   distributed environment. You understand networking technology and how servers and networks inter-relate. You reg…
来自 http://deeplearning.net/tutorial/,虽然比较老了,不过觉得想系统的学习theano,所以需要从python--numpy--theano的顺序学习.这里的资料都很老了,毕竟看得出来应该是10年的,现在都15年了,综述还是什么都很不一样了,不过对于学习theano来说,还好没差.如果是想学习dl的原理的,推荐看其他的新综述和文章,这里的博文主要是为了学习theano,也就是主要工程上,不是学术上. 深度学习是机器学习研究中一个新的领域,是为了朝着机器学习的初衷…
What: 就是将统计学算法作为理论,计算机作为工具,解决问题.statistic Algorithm. How: 如何成为菜鸟一枚? http://www.quora.com/How-can-a-beginner-train-for-machine-learning-contests 链接内容总结: "学习任何一门学科,framework是必不可少的东西.没有framework的东西,那是研究." -- Jason Hawk One thing is for sure; you ca…
写在前面的几句废话 最近在项目的过程中接触了lex 和 yacc,他们可以帮助我们来实现自己的领域语言.最典型的应用就是可以帮助我们来实现自定义测试脚本的执行器.但是,这里也有一个限制,就是测试脚本要做的基本事情必须有现成的C语言库来实现,否则就做不到了:如果基本的操作是用java来做的,那么还可以用Antlr,这里不对Antlr做详细介绍. lex是什么? 教科书上把lex的作用的作用叫做"词法分析 lexical analysis ",这个中文叫法非常让人看不明白(叫做"…
今天傍晚完成了Code Academy上Python的所有练习,感觉Python的原力在我身体里流淌......下面要学习一些进阶的东西.之前Zhi哥跟我说Python比较简单,我还不太信.其实早在四年前就想学Python了,买了书,但一直都没有学.就像算法一样...十几年前就买了算法导论...没有看.否则现在哪会还在这里蹉跎. 所谓买书如山倒,读书如抽丝.现在努力还不算太晚.下一步是AngularJS,会在刷第二遍时学习. 去年之前只会一些Matlab,以及工作上使用的简单C#和SQL 6月通…
英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时间;另外,每个杂志都有他们的具体格式要求,一定要按照他们的要求把论文写好,免得浪费时间,前些时候,我的一个同事向一个著名的英文杂志投稿,由于格式问题,人家过两个星期就退回来了,而且说了很多难听的话,说投稿前首先就应该看清楚他们的格式要求:2. 论文写作一定要言简意赅,特别是摘要,引言和结论部分,特别…
Netflix工程总监眼中的分类算法:深度学习优先级最低 摘要:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain根据奥卡姆剃刀原理依次推荐了逻辑回归.SVM.决策树集成和深度学习,并谈了他的不同认识.他并不推荐深度学习为通用的分类技术. [编者按]针对Quora上的一个老问题:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain近日给出新的解答,他根据奥卡姆剃刀原理依次推荐了逻辑回归.SVM.决策树集成和深度学习,并谈了他的不同…
2015-08-25   008   Foreword    QUOTE: I think that it's extraordinarily important that we in computer science keep fun in computing...... What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you we…