当今世界最受人们重视的十大经典算法

上传人:艾力 文档编号:36788339 上传时间:2018-04-02 格式:PDF 页数:14 大小:969.75KB
返回 下载 相关 举报
当今世界最受人们重视的十大经典算法_第1页
第1页 / 共14页
当今世界最受人们重视的十大经典算法_第2页
第2页 / 共14页
当今世界最受人们重视的十大经典算法_第3页
第3页 / 共14页
当今世界最受人们重视的十大经典算法_第4页
第4页 / 共14页
当今世界最受人们重视的十大经典算法_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《当今世界最受人们重视的十大经典算法》由会员分享,可在线阅读,更多相关《当今世界最受人们重视的十大经典算法(14页珍藏版)》请在金锄头文库上搜索。

1、open in browser customizefree license您还未登录!| 登录 | 注册 | 帮助CSDN首页资讯论坛博客下载搜索更多公告:第三届中国云计算大会 7?5折票价抢购中!意见反馈官方博客当今世界最受人们重视的十大经典算法作者?July、二零一一年三月七日。当今世界,已经被发现或创造的经典算法数不胜数。如果,一定要投票选出你最看重的十大算法,你会作何选择列?最近,有人在StackExchange上发起了提问,向网友们征集当今世界最为经典的十大算法。众人在一大堆入围算法中进行投票,最终得出了呼声最高的以下十个算法。来自圣经的十大算法:发起人的描述:来自圣经的证明收集了数

2、十个简洁而优雅的数学证明,迅速赢得了大批数学爱好者的追捧。如果还有一本来自圣经的算法,哪些算法会列入其中呢?现在 ,朋友们,以下是数十种候选算法,如果你觉得它是当今世界最经典的算法,就请您为它投当今世界最受人们重视的十大经典算法 收藏 结构之法 算法之道本BLOG第一期全部博文集锦CHM文件,已上传了资源。登录注册博客首页全站搜索空间博客好友相册留言用户操作留言 发消息 加为好友 v_JULY_vID:v_JULY_v共215384次访问,排名535,好友721人,关注者1042人。精选微软等公司数据结构+算法面试10 0题系列,经典算法研究系列,红黑树系列,之作者本人July 。(c/c+/

3、vc,open in browser customizefree license一票?最终产生了下面得票数最高的十大经典算法(投票数统计截止到?年?月7日 ):第十名:Huffman coding(霍夫曼编码)霍夫曼编码(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码( 权编码)算法。?年,David A? Huffman在麻省理工攻读博士时所发明的,并发表于一种构建极小多余编码的方法(A Method for the Construction of MinimumRedundancy Codes)一文。第九名:Binary Search (二分查找)在一个有序的

4、集合中查找元素,可以使用二分查找算法,也叫二分搜索。二分查找算法先比较位于集合中间位置的元素与键的大小,有三种情况(假设集合是从小到大排列的):?键小于中间位置的元素,则匹配元素必在左边(如果有的话),于是对左边的区域应用二分搜索。?键等于中间位置的元素,所以元素找到。?键大于中间位置的元素,则匹配元素必在右边(如果有的话),于是对右边的区域应用二分搜索。 另外,当集合为空,则代表找不到。第八名:MillerRabin作的类似的试验测试这个想法是利用素数的性质(如使用费马大定理)的小概率寻找见证不数素数。如果没有证据是足够的随机检验后发现,这一数字为素数。第七名:Depth First Sea

5、rch、Breadth First Search(深度、广度优先structures,and Algorithms)。v_JULY_v的文章原创 66 篇翻译 4 篇转载 0 篇评论 1282 篇订阅我的博客v_JULY_v的公告【一】、版权所有,侵权必究。本人对本博客所有任何内容和资料享有版权。若需转载,请注明出处。谢谢。【二】、本BLOG算法交流:群,69809881。算法导论习题交流队,75673770。欢迎有兴趣者加入。谢谢。【三】、任何人,有任何问题,欢迎博客上留言,或来信指导。同时,欢迎各位提供 好的面试题。本人邮箱,。谢谢。open in browser customizefre

6、e license搜索)它们是许多其他算法的基础。关于深度、广度优先搜索算法的具体介绍,请参考此文:教你通透彻底理解:BFS和DFS优先搜索算法。第六名:Gentrys Fully Homomorphic Encryption Scheme(绅士完全同态加密机制)算法。此算法很漂亮,它允许第三方执行任意加密数据运算得不到私钥(不是很了解)。第五名:FloydWarshall allpairs最短路径算法关于此算法的介绍,可参考我写的此文:几个最短路径算法比较(http?blog?csdn?net?v_JULY_v?archive?aspx)。d? 二维数组? di,j最小花费、或最短路径的邻边

7、。for k from ? to n?for i from ? to n?for j from ? to n?di,j = min(di,j, di,k + dk,j)第四名:Quicksort(快速排序)快速排序算法几乎涵盖了所有经典算法的所有榜单。它曾获选二十世纪最伟大的十大算法(参考这:细数二十世纪最伟大的?大算法)。关于快速排序算法的具体介绍,请 参考我写的这篇文章:一之续、快速排序算法的深入分析。文章分类100个vc小项目开发Algorithms(后续)Algorithms(习题)Algorithms(系列)c/c+Code Librarydata structuresDesign

8、PatternsGame DevelopGossip 闲扯Image ProcessingInterview questionLinux0.11内核源码MathematicsMS 100 answersMS 100 classifyMS 100 commentsMS 100 one KeysMS 100 originalMy open in browser customizefree license第三名:BFPRT 算法? 年,Blum、Floyd、Pratt、Rivest、Tarjan集体出动,合写了一篇题为 “Time bounds for selection” 的论文,给出了一种在数组

9、中选出第 k 大元素的算法,俗称“中位 数之中位数算法“。依靠一种精心设计的 pivot 选取方法,该算法从理论上保证了最坏情形下的线性时间复杂度,打败了平均线性、最坏 O(n?) 复杂度的传统算法。一群大牛把递 归算法的复杂度分析玩弄于骨掌股掌之间,构造出了一个当之无愧的来自圣经的算法。我在这里简单介绍下在数组中选出第k大元素的时间复杂度为O(N)的算法:类似快排中的分割算法:每次分割后都能返回枢纽点在数组中的位置s,然后比较s与k的大小 若大的话,则再次递归划分arrays?n,小的话,就递归arrayleft?s? ?s为中间枢纽点元素。否则返回arrays,就是partition中返回

10、的值。 ?就是要找到这个s。找到符合要求的s值后,再遍历输出比s小的那一边的元素。各位可参考在:算法导论上,第九章中,以期望线性时间做选择,一节中,我找到了这个 寻找数组中第k小的元素的,平均时间复杂度为O(N)的证明:上述程序的 期望运行时间,最后证明可得O(n),且假定元素是不同的。第二名:KnuthMorrisPratt字符串匹配算法关于此算法的介绍,请参考此文:六、教你从头到尾彻底理解KMP算 法。KMP算法曾经落选于二十世纪最伟大的十大算法,但人们显然不能接受,如此漂亮、高效的KMP算法竟然会落选。所以,此次最终投票产出生,KMP算法排到了第二名。Network ProgramPro

11、grammers wayRed-black treeSource Analysisunix/linuxVC/MFCwindowsGoogle or baidu?baidu 搜-“结构之法“(My BLOG)Google搜-“结构之法“(My BLOG)linux0.11内核源码系列第一篇:memory.cYouDao Or Google?google translate有道 translate本博客被推荐的文章世界七大数学难题二之续、彻底理解Dijkstra算法十、从头到尾彻底理解傅里叶变换算法、上open in browser customizefree license第一名:Unionfi

12、nd严格地说,并查集是一种数据结构,它专门用来处理集合的合并操作和查询操作。并查 集巧妙地借用了树结构,使得编程复杂度降低到了令人难以置信的地步;用上一些递归技巧 后,各种操作几乎都能用两行代码搞定。而路径压缩的好主意,更是整个数据结构的画龙点睛之笔。并查集的效率极高,单次操作的时间复杂度几乎可以看作是常数级别;但由于数据 结构的实际行为难以预测,精确的时间复杂度分析需要用到不少高深的技巧。并行查找,最终占据了此份榜单的第一名。补充:前三名的投票数,只相差?票,?票。所以这个排名日后还会不断有所变化。但不管最终结果怎样,这前十名的算法已经基本敲定了。原投票网址 :http:?cstheory?

13、stackexchange?com?questions?89?algo rithmsfromthebook。怎么样,上文那些算法,你是否熟悉?如果,现在,我给你一个投票权,你会把票投给哪一个算法列?ok,咱们也来一次投票吧,请把你的意见,决定权写在本文下面的评论里:我把已经产生的前十名的算法,再写在下面,方便投票:第十名:Huffman coding(霍夫曼编码)。第九名:Binary Search (二分查找)。第八名:MillerRabin作的类似的试验测试。 第七名:Depth First Search(深度优先搜索)。第六名:绅士完全同态加密机制第五名:FloydWarshall al

14、lpairs最短路径算法。 第四名:Quicksort(快速排序)。第三名:BFPRT 算法。十、从头到尾彻底理解傅里叶变换算法、下图算法领域10大经典算法当今世界最受人们重视的十大经典算法微软等数据结构+算法面试第1-80题微软等结构+算法面试第61-80题教你通透彻底理解:BFS和DFS优先搜索算法数字图像处理领域的二十四个典型算法及vc实现、上数学建模十大算法漫谈数据挖掘领域十大经典算法初探精通八大排序算法系列:一、快速排序精通八大排序算法系列:一之续、快速排序算法的深入分析红黑树算法的实现与剖析细数二十世纪最伟大的10大算法经典算法研究系列:五、红黑树评微软等数据结构+算法面试100题

15、博客链接80后领军人物-韩寒CSDN上 的专家们CSDN-博客订阅排行open in browser customizefree license第二名:KnuthMorrisPratt字符串匹配算法。 第一名:Unionfind。为了让大家有更多的选择,我再贴出其它几种同样经典但暂时未能排进上述榜单前十名的候 选算法:十一、CooleyTukey FFT算法。快速傅里叶变换算法。关于傅里叶变换算法的介绍,请参考此文:十、从头到尾彻底理解傅里叶变换算法、上。十二、linear programming,线性规划。 十三、Dijkstra算法。具体介绍,参考此文:二之续、彻底理解Dijkstra算法 。十四、Merge Sort。归并排序。十五、FordFulkerson算法。网络最大流算法。 十六、辗转相除法 。在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法,即求两个正整数之最大公因子的算法。此算法作为TAOCP第一个算法被阐述,足见此算法被重视的程度。它是已知最古老的算法, 其可追溯至?年前。辗转相除法首次出现于欧几里得的几何原本(第VII卷,命题i和

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号