欢迎来到天天文库
浏览记录
ID:34445171
大小:118.16 KB
页数:4页
时间:2019-03-06
《十种影响深远的算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Reddit有篇帖子介绍了算法对我们现在生活的重要性,以及哪些算法对现代文明所做贡献最大。如果对算法有所了解,读这篇文章时你可能会问“作者知道算法为何物吗?”,或是“Facebook的‘信息流’(NewsFeed)算是一种算法吗?”,如果“信息流”是算法,那就可以把所有事物都归结为一种算法。才疏学浅,结合那篇帖子,接下来我试着解释一下算法是什么,又是哪10个算法正在主导我们的世界。 什么是算法? 简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homasH.Cormen,ChalesE.Leiserson《
2、算法导论第3版》) 可以这样理解,算法是用来解决特定问题的一系列步骤(不仅计算机需要算法,我们在日常生活中也在使用算法)。算法必须具备如下3个重要特性: [1]有穷性。执行有限步骤后,算法必须中止。 [2]确切性。算法的每个步骤都必须确切定义。 [3]可行性。特定算法须可以在特定的时间内解决特定问题, 其实,算法虽然广泛应用在计算机领域,但却完全源自数学。实际上,最早的数学算法可追溯到公元前1600年-Babylonians有关求因式分解和平方根的算法。 那么又是哪10个计算机算法造就了我们今天的生活呢?请看下面的表单,排名不分先后: 1.归并
3、排序(MERGESORT),快速排序(QUICKSORT)和堆积排序(HEAPSORT) 哪个排序算法效率最高?这要看情况。这也就是我把这3种算法放在一起讲的原因,可能你更常用其中一种,不过它们各有千秋。 归并排序算法,是目前为止最重要的算法之一,是分治法的一个典型应用,由数学家JohnvonNeumann于1945年发明。 快速排序算法,结合了集合划分算法和分治算法,不是很稳定,但在处理随机列阵(AM-basedarrays)时效率相当高。 堆积排序,采用优先伫列机制,减少排序时的搜索时间,同样不是很稳定。 与早期的排序算法相比(如冒泡算法)
4、,这些算法将排序算法提上了一个大台阶。也多亏了这些算法,才有今天的数据发掘,人工智能,链接分析,以及大部分网页计算工具。 2.傅立叶变换和快速傅立叶变换 这两种算法简单,但却相当强大,整个数字世界都离不开它们,其功能是实现时间域函数与频率域函数之间的相互转化。能看到这篇文章,也是托这些算法的福。 因特网,WIFI,智能机,座机,电脑,路由器,卫星等几乎所有与计算机相关的设备都或多或少与它们有关。不会这两种算法,你根本不可能拿到电子,计算机或者通信工程学位。(USA) 3.代克思托演算法(Dijkstra‘salgorithm) 可以这样说,如果没有
5、这种算法,因特网肯定没有现在的高效率。只要能以“图”模型表示的问题,都能用这个算法找到“图”中两个节点间的最短距离。 虽然如今有很多更好的方法来解决最短路径问题,但代克思托演算法的稳定性仍无法取代。 4.RSA非对称加密算法 毫不夸张地说,如果没有这个算法对密钥学和网络安全的贡献,如今因特网的地位可能就不会如此之高。现在的网络毫无安全感,但遇到钱相关的问题时我们必需要保证有足够的安全感,如果你觉得网络不安全,肯定不会傻乎乎地在网页上输入自己的银行卡信息。 RSA算法,密钥学领域最牛叉的算法之一,由RSA公司的三位创始人提出,奠定了当今的密钥研究领
6、域。用这个算法解决的问题简单又复杂:保证安全的情况下,如何在独立平台和用户之间分享密钥。 5.哈希安全算法(SecureHashAlgorithm) 确切地说,这不是一种算法,而是一组加密哈希函数,由美国国家标准技术研究所首先提出。无论是你的应用商店,电子邮件和杀毒软件,还是浏览器等等,都使用这种算法来保证你正常下载,以及是否被“中间人攻击”,或者“网络钓鱼”。 6.整数质因子分解算法(Integerfactorization) 这其实是一个数学算法,不过已经广泛应用与计算机领域。如果没有这个算法,加密信息也不会如此安全。通过一系列步骤将,它可以将一
7、个合成数分解成不可再分的数因子。 很多加密协议都采用了这个算法,就比如刚提到的RSA算法。 7.链接分析算法(LinkAnalysis) 在因特网时代,不同入口间关系的分析至关重要。从搜索引擎和社交网站,到市场分析工具,都在不遗余力地寻找因特网的正真构造。 链接分析算法一直是这个领域最让人费解的算法之一,实现方式不一,而且其本身的特性让每个实现方式的算法发生异化,不过基本原理却很相似。 链接分析算法的机制其实很简单:你可以用矩阵表示一幅“图“,形成本征值问题。本征值问题可以帮助你分析这个“图”的结构,以及每个节点的权重。这个算法于1976年由G
8、abrielPinski和FrancisNarin提
此文档下载收益归作者所有