![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
楚汐
Man is borned free
展开
-
字符串模式匹配KMP算法
字符串模式匹配KMP算法字符串模式匹配指的是,找出特定的模式串在一个较长的字符串中出现的位置。朴素的模式匹配算法很直观的可以写出下面的代码,来找出模式串在一个长字符串中出现的位置。 1: /* 2: 朴素的模式匹配算法 3: 功能:字符串的模式匹配 4: 参数: 5:转载 2013-11-29 19:41:28 · 630 阅读 · 0 评论 -
皇冠上的珍珠 统治世界的十大算法
软件正在统治世界。而软件的核心则是算法。算法千千万万,又有哪些算法属于“皇冠上的珍珠”呢?Marcos Otero 给出了他的看法。什么是算法?通俗而言,算法是一个定义明确的计算过程,可以一些值或一组值作为输入并产生一些值或一组值作为输出。因此算法就是将输入转为输出的一系列计算步骤。—Thomas H. Cormen,Chales E. Leiserson,算法入门转载 2014-07-09 15:15:58 · 1061 阅读 · 0 评论 -
动态规划(1)最长公共子序列
以前把大部分动态规划算法用java实现了遍,后来发现与python比代码行数太多,而python类似于伪代码,更容易一眼看出算法的核心,特此重新用python写一遍,方便快速了解算法。最长公共子序列问题就是求序列A= a1,a2,……ana_1,a_2,……a_n, 和B = b1,b2,……bmb_1,b_2,……b_m,的一个最长公共子序列。暴力枚举如果采用暴力枚举,只对A和B长度相同的子序列进原创 2016-08-07 22:12:26 · 674 阅读 · 6 评论 -
动态规划(2)-最长增序列
最长增序列(Longest Increasing Subsequence,LIS )给定一个数列,从中删掉任意若干项剩余的序列叫做它的一个子序列,求它的最长的子序列,满足子序列中的元素是单调递增的。 例如给定序列{1,6,3,5,4},答案是3,因为{1,3,4}和{1,3,5}就是长度最长的两个单增子序列。暴力枚举C(n,0)+C(n,1)+…+C(n,n)=2n2^n,还不算对单个C(n,i)原创 2016-08-07 22:15:30 · 1360 阅读 · 6 评论 -
动态规划(3)最短编辑距离
编辑距离,又称Levenshtein距离(俄罗斯科学家Vladimir Levenshtein在1965年提出这个概念),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。刚开始接触到这个概念是研一的时候看研三师兄写的论文,基于这个编辑距离的改进版本算法的,投的英文版的期刊,也是用动态规划做的,大家可以google学术搜下改进版本算法,这里分享下曹神的算法教程来介绍下原始算法。ok,言归正传原创 2016-08-08 16:42:50 · 947 阅读 · 0 评论