`
cloud21
  • 浏览: 390496 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了)

A*搜寻算法

俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。

Beam Search

束搜索(beam search)方法是解决优化问题的一种启发式方法,它是在分枝定界方法基础上发展起来的,它使用启发式方法估计k个最好的路径,仅从这k个路径出发向下搜索,即每一层只有满意的结点会被保留,其它的结点则被永久抛弃,从而比分枝定界法能大大节省运行时间。束搜索于20 世纪70年代中期首先被应用于人工智能领域,1976 年Lowerre在其称为HARPY的语音识别系统中第一次使用了束搜索方法,他的目标是并行地搜索几个潜在的最优决策路径以减少回溯,并快速地获得一个解。

二分取中查找算法一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。这种搜索算法每一次比较都使搜索范围缩小一半。

Branch and bound

分支定界(branch and bound)算法是一种在问题的解空间树上搜索问题的解的方法。但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界算法中,每一个活结点只有一次机会成为扩展结点。

数据压缩

数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术。数据压缩在文件存储和分布式系统领域有着十分广泛的应用。数据压缩也代表着尺寸媒介容量的增大和网络带宽的扩展。

Diffie–Hellman密钥协商Diffie–Hellman key exchange,简称“D–H”,是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。

Dijkstra’s 算法迪科斯彻算法(Dijkstra)是由荷兰计算机科学家艾兹格·迪科斯彻(Edsger Wybe Dijkstra)发明的。算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离,迪科斯彻算法可以用来找到两个城市之间的最短路径。

动态规划

动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算机科学和工程领域。比较著名的应用实例有:求解最短路径问题,背包问题,项目管理,网络流优化等。这里也有一篇文章说得比较详细。

欧几里得算法

在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。

最大期望(EM)算法在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在 E 步上求得的最大似然值来计算参数的值。M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。

快速傅里叶变换(FFT)快速傅里叶变换(Fast Fourier Transform,FFT),是离散傅里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换。快速傅里叶变换有广泛的应用,如数字信号处理、计算大整数乘法、求解偏微分方程等等。本条目只描述各种快速算法,对于离散傅里叶变换的性质和应用,请参见离散傅里叶变换。

哈希函数

HashFunction是一种从任何一种数据中创建小的数字“指纹”的方法。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用来代表一个短的随机字母和数字组成的字符串。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。

堆排序

Heapsort是指利用堆积树(堆)这种数据结构所设计的一种排序算法。堆积树是一个近似完全二叉树的结构,并同时满足堆积属性:即子结点的键值或索引总是小于(或者大于)它的父结点。

归并排序

Merge sort是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

RANSAC 算法

RANSAC 是”RANdom SAmpleConsensus”的缩写。该算法是用于从一组观测数据中估计数学模型参数的迭代方法,由Fischler and Bolles在1981提出,它是一种非确定性算法,因为它只能以一定的概率得到合理的结果,随着迭代次数的增加,这种概率是增加的。该算法的基本假设是观测数据集中存在”inliers”(那些对模型参数估计起到支持作用的点)和”outliers”(不符合模型的点),并且这组观测数据受到噪声影响。RANSAC 假设给定一组”inliers”数据就能够得到最优的符合这组点的模型。

RSA加密演算法

这是一个公钥加密算法,也是世界上第一个适合用来做签名的算法。今天的RSA已经专利失效,其被广泛地用于电子商务加密,大家都相信,只要密钥足够长,这个算法就会是安全的

并查集Union-find

并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。

Viterbi algorithm

寻找最可能的隐藏状态序列(Finding most probable sequence of hidden states)


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

关于排序算法,你可以看看本站的这几篇文章《一个显示排序过程的Python脚本》、《一个排序算法比较的网站》




觉得不错,有兴趣的同学随便看看。
分享到:
评论

相关推荐

    算法设计中文版

    《算法设计》是近年来关于算法设计和分析的不可多得的优秀教材。《算法设计》围绕算法设计技术组织素材,对每种...全书共200多道丰富而精彩的习题是《算法设计》的重要组成部分,也是《算法设计》的突出特色之一。 

    算法谜题(算法谜题)

    算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。 本书是一本经典算法谜题的合集。本书包括了...

    数据挖掘18大算法实现以及其他相关经典DM算法

    ,主要用于频繁子图的挖掘,相较于其他的图算法,子图挖掘算法是他们的一个前提或基础算法。gSpan算法用到了DFS编码,和Edge五元组,最右路径子图扩展等概念,算法比较的抽象和复杂。详细介绍链接 Others目录下的...

    《算法详解 卷1 算法基础》_徐波译

    算法是计算机科学领域最重要的基石之一。算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。 算法详解系列图书共有4卷,本书是第1卷——算法基础。本书共有6章,主要介绍了4个主题,它们分别是渐进性分析...

    DDA算法-中点直线算法-OPENGL实现.zip

    虽然OpenGL1.1库文件较老, 但不论是对于教学还是实践, 对理解直线段算法都具有重要意义, VS2019环境配置教程: https://blog.csdn.net/BoyInC0de/article/details/90079870 三种直线算法的解释:...

    计算机图形学+内接多边形画圆算法+中点画圆算法.zip

    虽然OpenGL1.1库文件较老, 但不论是对于教学还是实践, 对理解直线段算法都具有重要意义, VS2019环境配置教程: https://blog.csdn.net/BoyInC0de/article/details/90079870 三种弧线绘制算法的推导与解释: ...

    无人车算法综述

    具有重要实用意义的两大类无人车运动规划算法分别是:以快速随机扩展树算法(RRT)为代表的基于采样的规划算法和以A*搜索算法为代表的基于搜索的规划算法. 关键词:无人车 运动规划 基于采样的算法 基于搜索的算法

    算法导论-算法领域的一部经典著作

    本书是算法领域的一部经典著作,书中系统、全面地介绍了现代算法:从较快算法和数据结构到用于看似难以解决问题的多项式时间算法;从图论中的经典算法到用于字符匹配、计算集合和数论的特殊算法。本书第3版尤其增加...

    基于XGBoost的特征选择算法

    该算法借鉴极端梯度提升(XGBoost)算法中构建树的思想过程,通过从3个重要性度量的角度来衡量特征的重要性,避免单一重要性度量的局限性;然后通过改进的序列浮动前向搜索策略(ISFFS)搜索特征子集,使最终得到的...

    数学建模竞赛中应当掌握的十类算法

    些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7.网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本 身而轻视算法的时候,可以...

    论文研究-秦九韶算法思想在RSA密码算法中的应用研究.pdf

    介绍了用于快速计算高次多项式值的“秦九韶算法”,并用类似...RSA算法中明文分组和密文分组都较大,方幂模运算消耗大量的运算时间。因此,简化方幂模计算减少计算次数对设计RSA快速算法和选择密钥具有重要的指导意义。

    MUSIC改进算法在DOA估计中的研究.

    旋转不变子空间算法的仿真表明信号参数的估计精度随着信噪比的增大,快拍数的增加而提高,且具有较高的估计精确度,入射角度较小时,DOA估计性能要好一些。前/后向空间平滑算法不仅能估计出空间相互独立信号源的波达方向...

    \防碰撞算法

    标签反碰撞算法对于射频识别(RFID)系统的识别能力至关重要, 同时还关系到阅 读器的实现难度与标签成本, 是RFID 系统的关键技术之一. 标签冲突问题和计算机 网络冲突问题类似, 但是由于RFID 系统本身的一些限制...

    数学建模算法

    6.最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用) 7.网格算法和穷举法(网格算法和...

    论文研究-基于特征选择的统计最优样本大小算法.pdf

    针对统计最优样本大小算法在确定大数据集,尤其是高维数据集抽样样本大小时的执行效率较低,以及高维数据集中每一维属性的重要性不同且可能存在冗余属性,提出一种基于特征选择的统计最优样本大小算法。该算法基于熵...

    论文研究-基于模板匹配的加速肺结节检测算法研究.pdf

    使用传统的归一化互相关模板匹配算法进行肺结节检测耗时较长,在数据量较多的情况下容易造成漏诊或误诊。...采用这种算法进行自动肺节点检测可减少检测时间,对辅助完成早期的疑似肺结节点的定位和跟踪诊断有重要意义。

    TOA定位算法

    室内TOA(time of arrival)定位中...仿真和实际测试结果显示,在实际室内环境中,REC定位算法具有较高的定位精度,且平均定位误差、定位误差均方差和90%定位误差、最大定位误差等性能明显好于Ls、CN—TOAG、Nano算法。

    关联规则挖掘中改进型Diffsets算法

    频繁项集挖掘是关联规则挖掘中至关重要的一步。对于稠密数据集的频繁项集挖掘,传统的挖掘算法往往产 生大量无用的中间结果,造成内存利用率的极大浪费,尤其是在支持度较低的情况下。Diff set s 算法通过引入“差集”...

    WSN中基于LEACH2DCHS协议的簇维护算法

    摘要:节能是无线传感器网络设计中的一个重要的目标,而路由算法对无线传感器网络的能量消耗有着重要的影响,所以提高 路由算法的有效性,以减少网络中的能量消耗是非常必要的。在原LEACH-DCHS 算法的基础上,提出了...

Global site tag (gtag.js) - Google Analytics