当今世界,已经被发现或创造的经典算法数不胜数。如果,一定要你投票选出你最看重的十大算法,你会作何选择2011年,有人在StackExchange上发起了提问,向网友们征集当今世界最为经典的十大算法。众人在一大堆入围算法中进行投票,最终得出了呼声最高的以下十个算法。鉴于其中多数算法前面已在不同的地方分别介绍过,这里从略。不过希望网友明白一点,以下票选出来的十大算法,受票选领域所限,不等同于、也绝非就是当今世界最为经典的十大算法,如许多常用的数值型经典算法并不在列等。
第一名:Union-find合并操作和查询算法;
第二名:Knuth-Morris-Pratt字符串匹配算法;
第三名:BFPRT算法;
第四名:Quicksort快速排序算法;
第五名:Floyd-Warshallall-pairs最短路径算法;
第六名:Gentry’sFullyHomomorphicEncryptionScheme绅士完全同态加密机制算法;
第七名:DepthFirstSearch、BreadthFirstSearch深度、广度优先搜索算法;
第八名:Miller-Rabin作的类似的试验测试算法;
第九名:BinarySearch二分查找算法;
第十名:Huffmancoding霍夫曼编码算法。
慧都大数据程序员应知道的10大基础算法这里总结出的《程序员应知道的10大基础算法》,包含排序、查找、搜索和分类等几类算法,当然是程序员应当知道的一些基础算法,但是不是“程序员应知道的10大基础算法”,可能是仁者见仁、智者见智,不同看法一定很多。因其数量极其有限,既不可能全面,更不可能完善,只能是仅供参考而已。算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法策略来把一个串行分为两个子串行,再分别进行排序。