一些重要的算法 博客分类: 算法 算法网络应用网页游戏领域模型游戏

      下面是一些比较重要的算法,原文 罗列了32个,但我觉得有很多是数论里的或是比较生僻的,和计算机的不相干,所以没有选取。下面的这些,有 的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述 大部份摘自Wikipedia,因为维基百科描述的很专业了)

  1. A*搜寻算法 俗称A星算法。这是一种在图形平面上, 有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法 一样,可以找到一条最短路径;也像BFS 一样,进行启发式 的搜索。
  2. Beam Search 束搜索(beam search) 方法是解决优化问题的一种启发式方法,它是在分枝定界方法基础上发展起来的,它使用启发式方法估计k 个最好的路径,仅从这k 个路径出发向下搜索,即每一层只有满意的结点会被保留,其它的结点则被永久抛弃,从而比分枝定界法能大大节省运行时间。束搜索于20 世纪70 年代中期首先被应用于人工智能领域,1976 年Lowerre 在其称为HARPY的语音识别系统中第一次使用了束搜索方法,他的目标是并行地搜索几个潜在的最优决策路径以减少回溯,并快速地获得一个解。
  3. 二分取中查找算法 一种在有序数组中查找某一特定元素 的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小 于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。这种搜索算法每一次比较都使搜索范围缩小一半。
  4. Branch and bound 分支定界 (branch and bound) 算法是一种在问题的解空间树上搜索问题的解的方法。但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界算法 中,每一个活结点只有一次机会成为扩展结点。
  5. 数据压缩 数据压缩是通过减少计算机中所存储数据或者通 信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术。数据压缩在文件存储和分布式系统领域有着十分广泛的应用。数据压缩也代表着尺 寸媒介容量的增大和网络带宽的扩展。
  6. Diffie–Hellman密钥协商 Diffie–Hellman key exchange,简称“D–H”, 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内 容。
  7. Dijkstra’s 算法 迪科斯彻算法 (Dijkstra)是由荷兰计算机科学家艾 兹格·迪科斯彻 (Edsger Wybe Dijkstra)发明的。算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行 经的距离,迪科斯彻算法可以用来找到两个城市之间的最短路径。
  8. 动态规划 动态规划是一种在数学和计算机科学中使用 的,用于求解包含重叠子问题的最优化 问 题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算 机科学和工程领域。比较著名的应用实例有:求解最 短路径 问题,背 包问题项 目管理网络流 优 化等。这里也有一篇文章 说得比较详细。
  9. 欧几里得算法 在数学中,辗转相除法,又称欧几里得算 法,是求最 大公约数 的算法。辗转相除法首次出现于欧 几里得 的《几 何原本 》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九 章算术 》。
  10. 最大期望(EM)算法 在统计计算中,最大期望 (EM)算法是在概率probabilistic ) 模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable )。 最大期望经常用在机 器学习计 算机视觉数 据聚类Data Clustering ) 领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大 化在 E 步上求得的最大似然值来计算参数的值。M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。
  11. 快速傅里叶变换  (FFT) 快 速傅里叶变换(Fast Fourier Transform,FFT),是离 散傅里叶变换 的快速算法,也可用于计算离散傅里叶变换的逆变换。快速傅里叶变换有广泛的应用,如数 字信号处理 、计算大 整数乘法 、求解偏 微分方程 等等。本条目只描述各种快速算法,对于离散傅里叶变换的性质和应用,请参见离 散傅里叶变换
  12. 哈希函数 Hash Function是一种从任何一种数据中创建小的数字“指纹”的方法。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用来代表一个短的 随机字母和数字组成的字符串。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。
  13. 堆排序 Heapsort  是 指利用堆 积树 ) 这种数据结构所设计的一种排序算法。堆积树是一个近似完 全二叉树 的结构,并同时满足堆积属性 :即子结点的键值或索引总是小于(或者大于)它的父结点。
  14. 归并排序 Merge sort 是 建立在归并操作上的一种有效的排序 算法 。 该算法是采用分治法 (Divide and Conquer)的一个非常典型的应用。
  15. RANSAC 算法 RANSAC 是”RANdom SAmple Consensus”的缩写。该算法是用于从一组观测数据中估计数学模型参数的迭代方法,由Fischler and Bolles在1981 提出,它是一种非确定性算法,因为它只能以一定的概率得到合理的结果,随着迭代次数的增加,这种概率是增加的。 该算法的基本假设是观测数据集中存在”inliers”(那些对模型参数估计起到支持作用的点)和”outliers”(不符合模型的点),并且这组观测 数据受到噪声影响。RANSAC 假设给定一组”inliers”数据就能够得到最优的符合这组点的模型。
  16. RSA加密演算法 这是一个公钥加密算法,也是世界上 第一个适合用来做签名的算法。今天的RSA已经专利失效,其被广泛地用于电子商务加密,大家都相信,只要密钥足够长,这个算法就会是安全的
  17. 并查集Union-find 并查集是一种树型的数据结 构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。
  18. Viterbi algorithm 寻找最可能的隐 藏状态序列(Finding most probable sequence of hidden states)

附录

  • 关于这个世界上的算法,你可以看看Wikipedia的这个网页:http://en.wikipedia.org/wiki/List_of_algorithms

本文转自:http://blog.csdn.net/haoel/archive/2010/07/22/5755241.aspx

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

深度学习( Deep Learning )软件资源列表

? 列表源自http://deeplearning.net/software_links/,本文进行分类整理。 星号代表对软件库的推荐度,考虑了适用范围、开发...

32070
来自专栏数据结构与算法

P3819 松江1843路

题目描述 涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为 的地方,其中住了 人。 松江1843路公交车要在这条路上...

32860
来自专栏小樱的经验随笔

利用向量积(叉积)计算三角形的面积和多边形的面积

利用向量积(叉积)计算三角形的面积和多边形的面积: 向量的数量积和向量积: (1)  向量的数量积 ? (1)  向量的向量积 两个向量a和b的叉积(向量积)可...

47690
来自专栏一名叫大蕉的程序员

大数据计数原理1+0=1这你都不会算(六)No.57

照例甩一波链接。 大数据计数原理1+0=1这你都不会算(一)No.47 <- HashSet 大数据计数原理1+0=1这你都不会算(二)No.5...

21460
来自专栏新智元

【邓侃】哈佛大学机器翻译开源项目 OpenNMT的工作原理

【新智元导读】 2016年12月20日,哈佛大学自然语言处理研究组,宣布开源了他们研发的机器翻译系统 OpenNMT ,并声称该系统的质量已经达到商用水准。本文...

55850
来自专栏钱塘大数据

32类计算机与数学领域最为重要的算法

导读: 奥地利符号计算研究所的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科...

31680
来自专栏封碎

当今世界最为经典的十大算法 博客分类: 经典文章转载 算法数据结构网络应用数据挖掘J#

本文转载自July CSDN博客:http://blog.csdn.net/v_JULY_v/archive/2011/03/07/6228235.aspx

25820
来自专栏数据结构与算法

2853 方格游戏(三维棋盘)

 时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 菜菜看到了...

36760
来自专栏PPV课数据科学社区

【学习】七天搞定SAS(七):常用统计模型

其实最后一天,反而是任务最繁重的。这一天,需要纵览SAS的各个常用的统计模块。BTW,在用惯了ggplot2之后,再也不认为有任何理由用其他软件画图了...所以...

63560
来自专栏书山有路勤为径

Landmark Detection & Robot Tracking (SLAM)地标检测与机器人跟踪

我们将在2D网格世界中定位一个机器人。实时定位与地图构建的基础是从机器人的传感器和运动中收集信息,然后使用有关测量和运动的信息来重新构建一个该世界的地图。

24620

扫码关注云+社区

领取腾讯云代金券