文章插图
Reddit有篇帖子介绍了算法对我们现在生活的重要性,以及哪些算法对现代文明所做贡献最大 。这个表单并不完整,很多与我们密切相关的算法都没有提到,如机器学习和矩阵乘法,欢迎你继续补充 。
如果对算法有所了解,读这篇文章时你可能会问“作者知道算法为何物吗?”,或是“Facebook的‘信息流’(News Feed)算是一种算法吗?”,如果“信息流”是算法,那就可以把所有事物都归结为一种算法 。才疏学浅,结合那篇帖子,接下来我试着解释一下算法是什么,又是哪些算法正在主导我们的世界 。
什么是算法?简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值 。(来源:homas H. Cormen, Chales E. Leiserson 《算法导论第3版》)
可以这样理解,算法是用来解决特定问题的一系列步骤(不仅计算机需要算法,我们在日常生活中也在使用算法) 。算法必须具备如下3个重要特性:
- 有穷性,执行有限步骤后,算法必须中止 。
- 确切性,算法的每个步骤都必须确切定义 。
- 可行性,特定算法须可以在特定的时间内解决特定问题 。
那么又是哪10个计算机算法造就了我们今天的生活呢?请看下面的表单,排名不分先后:
1.归并排序(MERGE SORT)、快速排序(QUICK SORT)和堆积排序(HEAP SORT)
文章插图
哪个排序算法效率最高?这要看情况 。这也就是我把3种算法放在一起讲的原因,可能你更常用其中一种,不过它们各有千秋 。
归并排序算法,是目前为止最重要的算法之一,是分治法的一个典型应用,由数学家John von Neumann于1945年发明 。
快速排序算法,结合了集合划分算法和分治算法,不是很稳定,但在处理随机列阵(AM-based arrays)时效率相当高 。
堆积排序,采用优先伫列机制,减少排序时的搜索时间,同样不是很稳定 。
与早期的排序算法相比(如冒泡算法),这些算法将排序算法提上了一个大台阶 。也多亏了这些算法,才有今天的数据发掘,人工智能,链接分析,以及大部分网页计算工具 。
2.傅立叶变换和快速傅立叶变换这两种算法简单,但却相当强大,整个数字世界都离不开它们,其功能是实现时间域函数与频率域函数之间的相互转化 。能看到这篇文章,也是托这些算法的福 。
因特网,WIFI,智能机,座机,电脑,路由器,卫星等几乎所有与计算机相关的设备都或多或少与它们有关 。不会这两种算法,你根本不可能拿到电子,计算机或者通信工程学位 。(USA)
3.迪杰斯特拉算法 (Dijkstra’s algorithm)
文章插图
可以这样说,如果没有这种算法,因特网肯定没有现在的高效率 。只要能以“图”模型表示的问题,都能用这个算法找到“图”中两个节点间的最短距离 。
虽然如今有很多更好的方法来解决最短路径问题,但代克思托演算法的稳定性仍无法取代 。
4.RSA非对称加密算法毫不夸张地说,如果没有这个算法对密钥学和网络安全的贡献,如今因特网的地位可能就不会如此之高 。现在的网络毫无安全感,但遇到钱相关的问题时我们必需要保证有足够的安全感,如果你觉得网络不安全,肯定不会傻乎乎地在网页上输入自己的银行卡信息 。
RSA算法,密钥学领域最牛叉的算法之一,由RSA公司的三位创始人提出,奠定了当今的密钥研究领域 。用这个算法解决的问题简单又复杂:保证安全的情况下,如何在独立平台和用户之间分享密钥 。
5.哈希安全算法(Secure Hash Algorithm)确切地说,这不是一种算法,而是一组加密哈希函数,由美国国家标准技术研究所首先提出 。无论是你的应用商店,电子邮件和杀毒软件,还是浏览器等等,都使用这种算法来保证你正常下载,以及是否被“中间人攻击”,或者“网络钓鱼” 。
6.整数质因子分解算法(Integer factorization)这其实是一个数学算法,不过已经广泛应用与计算机领域 。如果没有这个算法,加密信息也不会如此安全 。通过一系列步骤将,它可以将一个合成数分解成不可再分的数因子 。
推荐阅读
- 了不起的国货④│竹叶青_让中国茶走向世界,是每一个茶企的理想
- 礼遇世界!高端绿茶竹叶青入选第二十一届投洽会礼宾用茶,携手打开“中国窗口”
- 3小时就能攻破一个网站:我围观了这个黑客的操作后,大呼过瘾
- Excel与Word无损相互转换,这个技巧你一定要学会
- 共享杯醇厚香甜的茶,这个大冬天
- 龚建茶来自哪里,五彩缤纷的茶世界
- 世界知名红茶主要产地主要有哪些国家[红茶]
- 大便出血喝茶帮您,红茶馆为您解答喝红茶上火这个问题
- 《完美世界》各女主结局是什么?
- 招聘|这个编制单位4月中旬公开招聘,年收入可达12万,专科生也能报名