Algorithm
epluguo
这个作者很懒,什么都没留下…
展开
-
字符串匹配的KMP算法
作者: 阮一峰 日期: 2013年5月 1日 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家D转载 2013-05-10 09:38:34 · 565 阅读 · 0 评论 -
二叉树的一些基本运算
树型结构的用途很广,其中二叉树尤为重要。 这里列出了几种基本的算法 (1)遍历二叉树。(先序遍历,递归方式,采用广义表的格式输出) (2)求某节点的左、右孩子节点值 (3)求二叉树的深度(递归方式) (4)求二叉树的宽度(类似层次遍历,用到队列) (5)求二叉树的节点个数(递归) (6)求二叉树叶子节点个数(递归) 代码里写的很明白了,上面的括号是下面的代码实现方式的简述。原创 2013-06-29 12:18:56 · 1140 阅读 · 0 评论 -
CRC原理及实现
CRC(Cyclic RedundancyCodes)中文名是循环冗余码,由于计算简单等,被广泛用于数据校验,具有很强的检错能力。最常见的有网络传输中信息的校验,但同样的道理,我们也可以将其应用到软件中,如:winrar对文件的校验。另外,我们还可以将它应用到软件上面来保护软件被恶意修改,还可以用在内存动态校验上面。用途多多,变通方式也不一,但基本原理都是这个。 CRC算法的是以GF(2原创 2013-08-20 14:35:44 · 2320 阅读 · 5 评论 -
图 - 每对顶点间最短路径----Floyd算法
对于一个各边权值均大于零的有向图,对每一对顶点,求出vi与vj之间的最短路径和最短路径长度。 以下代码包含有向图的建立,Floyd算法的实现以及输出最短路径和最短路径长度。 代码说明几点: 1、A[][]数组初始化为各顶点间的原本距离,最后存储各顶点间的最短距离。 2、path[][]数组保存最短路径,与当前迭代的次数有关。初始化都为-1,表示没有中间顶点。在求A[i][j原创 2013-09-02 18:29:45 · 1884 阅读 · 0 评论 -
算法复杂性分析
算法复杂性,这个东西,以前一直搞不大懂,很是苦恼。网上的资料不是很粗浅就是看不懂。大三了,看了门算法的课,根据老师的描述以及自己查证的资料,终于对这复杂度有了一定的了解。 算法复杂度主要体现在运行该算法所需要的计算机资源的多少上。计算机的资源最重要的是时间和空间(存储器)资源,所以,算法的复杂性有时间复杂度以及空间复杂度之分。这两个量集中反映了算法的效率,而从具体运行该算法的计算机中抽象原创 2013-09-25 13:07:33 · 4068 阅读 · 0 评论