`
cloud21
  • 浏览: 397374 次
  • 性别: 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脚本》、《一个排序算法比较的网站》




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

相关推荐

    动态规划,分治算法,概率算法,模拟退火算法,搜索算法,贪婪算法,网上matlab,遗传算法,组合算法

    它通过引入接受较差解的概率,避免算法过早陷入局部最优,从而有可能找到全局最优解。常用于旅行商问题和图的着色问题。 5. **搜索算法**:搜索算法主要用于在状态空间中寻找解决方案。有穷状态搜索如深度优先搜索...

    acm竞赛重要算法整理

    - **重要算法整理**:该文档主要关注ACM竞赛中出现频率较高、实用性较强的算法,并对其进行系统化的归纳总结。 #### 描述解读:ACM竞赛重要算法整理 文档描述强调了其主要内容是围绕ACM竞赛中的关键算法进行整理和...

    Matlab 智能优化算法 (粒子群算法、模拟退火算法、差分进化算法、蚁群算法) 附matlab源代码

    智能优化算法是计算机科学和数学领域中的一种重要技术,旨在寻找最优解以解决复杂的优化问题。Matlab作为一个强大的计算软件,提供了多种智能优化算法的实现。 本文将对Matlab智能优化算法进行概述,涵盖粒子群算法...

    首次适应算法 最佳适应算法 循环首次适应算法 

    在操作系统中,内存管理是至关重要的一个环节,它涉及到如何有效地分配、使用和回收内存资源。本篇文章将详细探讨三种常见的内存分配算法:首次适应算法(First Fit...因此,了解和比较各种算法的优缺点是至关重要的。

    操作系统算法实现(银行家算法 进程调度算法 页面置换算法)

    在操作系统的设计与实现中,有三个重要的算法:银行家算法、进程调度算法和页面置换算法。这些算法对于系统的性能和稳定性至关重要。 首先,让我们深入探讨银行家算法。这个算法主要用于预防操作系统的死锁问题。...

    A5算法 A5算法 A5算法

    1. **内容质量**:A5算法强调了内容的原创性和价值,高质量、独特的内容更容易获得较高的排名。这鼓励网站提供有用、详细且更新频繁的信息。 2. **关键词相关性**:算法会分析网页内容中的关键词,确保它们与用户...

    算法设计中文版

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

    智能优化算法--遗传算法 模拟退火 禁忌搜索 蚁群算法等

    模拟退火算法源自固体物理中的退火过程,其核心思想是在搜索过程中引入一定的随机性,允许在一定概率下接受较差的解决方案,以避免过早陷入局部最优。温度参数的动态调整控制了算法跳出局部最优的能力,适用于解决...

    OFDM同步算法之Park算法

    总结起来,OFDM同步对于系统的性能至关重要,Park算法作为其中的一种经典方法,对于理解和实现OFDM通信系统具有重要的学习价值。通过MATLAB仿真,我们可以深入理解Park算法的工作原理,进一步提升对OFDM系统同步机制...

    递归算法与循环算法的分析

    6. 时间复杂度和空间复杂度的重要性:在选择算法时,需要考虑算法的时间复杂度和空间复杂度,以便选择最优的算法。 7. 递归算法和循环算法在斐波那契数列计算中的应用:递归算法的时间复杂度为 O(2^n),循环算法的...

    算法复习算法复习资料

    算法复习资料是学习和提升编程技能的重要资源,涵盖了数据结构、排序、搜索、图论等多个方面。本文将深入探讨这些关键知识点,帮助你巩固和提高对算法的理解。 首先,我们来谈谈数据结构。数据结构是组织和存储数据...

    DDA算法、中点bresenham算法及bresenham算法画直线

    由于DDA算法计算量较大,尤其是在处理大量像素时,效率相对较低。 接着,我们来讨论Bresenham算法。Bresenham算法是为了解决DDA算法效率低下的问题而提出的,它主要应用于离散的像素网格上。该算法的核心是基于误差...

    OFDM同步算法之SC算法

    正文中: ...总之,SC算法是OFDM系统中实现时频同步的一种重要方法,对于理解和优化无线通信系统的性能具有重要意义。通过深入学习和实践,我们可以更好地掌握这种算法,并应用于实际的通信系统设计中。

    贝叶斯网络学习算法――k2算法

    贝叶斯网络是一种概率图模型,它利用贝叶斯定理来表示变量之间的条件依赖关系。在数据挖掘和机器学习领域,贝叶斯网络被广泛应用于分类...理解并掌握这类算法,对于提升数据驱动的决策能力和问题解决能力具有重要意义。

    算法算法算法算法算法算法

    "算法算法算法算法" 本节将对算法算法算法算法的知识点进行详细的解释: 算法概述 算法是指解决特定问题的一系列步骤或指令的集合。...这些算法在实际应用中发挥着重要作用,如数据处理、人工智能等领域。

    模拟退火算法和遗传算法程序

    该算法在搜索解空间时允许接受较劣的解,以避免早熟收敛,从而提高找到全局最优解的概率。MATLAB实现的模拟退火算法通常包括以下几个关键步骤: 1. 初始化:设定初始温度、初始解、冷却速率等参数。 2. 温度循环:在...

    模拟退火算法和遗传算法的比较与思考.pdf

    模拟退火算法(Simulated Annealing, SA)和遗传算法(Genetic Algorithm, GA)都是启发式搜索算法,它们在解决组合优化问题方面发挥着重要的作用。组合优化问题广泛存在于工程、经济、物流等多个领域,例如旅行商问题...

    数据辅助型三种定时同步算法:S&C定时同步算法及仿真、Minn算法及仿真、Park算法及其仿真..zip

    在IT领域,尤其是在通信系统和分布式系统中,定时同步和频率同步是至关重要的技术。这里我们探讨的是三种数据辅助型定时同步算法:S&C(Shapiro & Cross)定时同步算法、Minn定时同步算法以及Park定时同步算法。这些...

    链路状态路由算法(dijkstra算法)

    链路状态路由算法是计算机网络中的一个重要概念,主要用于构建和维护路由表,以确定数据在网络中的最佳传输路径。其中,Dijkstra算法是实现链路状态路由算法的一种经典方法,广泛应用于路由器的路径选择中。 ...

Global site tag (gtag.js) - Google Analytics