31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)

本文由程序猿编译团队-薇WEI 编译

原文来自:http://www.docsity.com/en/news/interesting-facts/great-algorithms-revolutionized-computing/

几十年来,许多精巧的计算机算法给计算领域带来了重大变革。这些算法在标准计算程序中操作中间运算符,产生出各种不同的高效函数,从而用于编制各种错综复杂的计算机程序,成为推动如今计算机发展的主要动因。下面列举了一些改变计算机使用的计算算法。

1、压缩技术

霍夫曼编码(HuffmanCoding)

31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)_第1张图片

该算法广泛应用于无损数据压缩。David A.Huffman一直在寻找最高效的二进制编码,于1951年提出基于有序频率二叉树编码的想法,事实也证明这是最高效的编码方式。由于简单高效,该编码算法被应用于各种压缩技术如DEFLATE (PK压缩算法)和多媒体编码如JPEG和MP3.

2、密码学算法

公钥加密算法

31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)_第2张图片

指需要两套独立钥匙的加密算法,公钥用于解密明文或者核实数字签名,私钥则用于解密密文或者生成数字签名。公钥加密技术帮助用户在公共频道安全交流。1997年有公开消息称,该算法由英国政府通信部门(GCHQ)的James H.Ellis, Clifford Cocks和 Malcolm Williamson于1993年在联合秘密设计并于同年投入使用。

3、检索算法

Dijkstra's算法 (Dijkstra's algorithm)

31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)_第3张图片

1956年由Edsger Dijkstra开发,是一种图检索算法,解决了图单源点最短路径问题,并由此产生了最短路径树。该算法被广泛应用于各种图算法的路径或者子路径。运用这种算法,单张图表上的最短路径便能轻松算出(如上图)

4、二进制检索算法

31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)_第4张图片

该检索算法用于定位由关键码值形成序列的关键字。通常字典中有用于查找字/词所在页码的列表;通讯录中也有名字,地址和电话号码清单,只要知道名字就可以迅速找到电话号码和地址。

5、排序算法

快速排序

31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)_第5张图片

1960年由TonyHoare开发,用于为需要转化的字排序,以便为已排序的代码字典提供便捷匹配。该算法作为默认的库排序函数(并于该标准C库函数中被命名为gsort)被应用于UNIX系统并因此名声大噪.

6、数学算法

Karatsuba算法

31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)_第6张图片

是一种快速乘法,由Anatolii Alexeevitch Karatsuba于1962年开发。该算法减少了相乘的数段并提供更快捷的乘法。Toom–Cook算法将该算法做了改进,但对于大数乘法来说Schönhage–Strassen算法则是更高效的方案。

7、欧几里德算法

31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载)_第7张图片

最大公约数,也就是能同时分别被两个正整数除尽的最大整数,可由欧几里德算法算出。该算法只应用减法和对照方法找出最大公约数,因此总固定被用于许多高级算法领域。该算法让欧几里德享有盛誉,也被誉为是公元前300年欧几里德时代最古老的算法。

8、图形学的突破性发展

Bresenham直线算法

1962年由IBM的JackElton Bresenham设计,用于为电脑屏幕画出直线。该算法应用简单的整数加减法和位移操作,是计算机图形学的先锋技术,并由此延伸出诸如能画圆的函数的算法。该直线算法便捷高效,在如今的硬件领域仍很重要并沿用,如绘图仪器和现代图形卡。

9、平方根倒数快速算法

该算法用于快速计算积的平方根的倒数,用在3D图形程序中确定光线和投影效果(涉及每秒成千上万次的计算),1999年在《雷神之锤III竞技场》源代码中应用, 2002年才被广泛使用。该算法用一系列简单技术解决复杂的运算,虽由JohnCarmack开发,但最早在Silicon图形学和3dfx中就有所应用,当时用的是Gary Tarolli的执行方案。

你可能感兴趣的:(31.变革计算领域的9个伟大算法:霍夫曼编码、快速排序...(转载))