算法
常见算法随记
_李白_
内外兼修,方是正途;外是架构,内是数学。
展开
-
算法(5):求逆序数
我们从一道面试题入手开始微软面试题2010年:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数对个数为4,现在给定一数组,要求统计出该数组的逆序数对个数。解:看到逆序数的次数有没有想到我们常见的归并排序呢,逆序数的求解本文的分享就是从归并排序衍生出来的一种方法。比如我们现在有两个顺序序列:ar.原创 2020-12-29 22:05:39 · 1154 阅读 · 0 评论 -
算法(4)KMP算法图文易懂版(看毛片算法,这下要是还看不懂你就来打我吧)
目录1、字符串的前缀、后缀、最长相等前后缀2、部分匹配值(Partial Match,PM)3、暴力匹配4、KMP算法KMP算法其实不难,只是市面上的千人千面的描述,把一个简单的算法越描述越乱了。KMP由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)比如在主串s=“ababcabcacbab”中找出模式串p="abcac"第一次出现的位置。1、字符串的前缀、后缀、最长相等前后缀前缀:除最后一个原创 2020-06-13 11:10:34 · 20306 阅读 · 1 评论 -
算法(3)Catalan number(卡特兰数)
目录1、定义2、原理3、应用1、定义卡塔兰数的一般项公式为卡特兰数Cn满足以下递推关系:前20项的卡塔兰数为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, ...2、原理设h(n)为catalan数的第n+1项,令h(0)=1,h(1)=1.原创 2020-05-30 11:49:36 · 520 阅读 · 0 评论 -
算法(2)斐波那契数列
在数学上,斐波那契数列是以递归的方法来定义:F_{0}=0F_{1}=1F_{n}=F_{n-1}+F_{n-2}}(n≧2)原创 2020-05-29 21:36:44 · 743 阅读 · 0 评论 -
算法(1)中缀表达式转前缀表达式和后缀表达式,并计算值
目录1、前缀表达式和后缀表达式的形成2、前缀表达式和后缀表达式在计算机中如何计算。中缀表达式就是我们数学中常用的那种表达式,本文打算以中缀表达式:1 + (2 + 3) × 4 - 5 为例,分享一下前缀表达式和后缀表达式的如何形成与在计算机如何计算前后最表达式和后缀表达式1、前缀表达式和后缀表达式的形成前缀表达式和后缀表达式中的这个“缀”就是指符号的移动方向(通俗来说,就是符号统一朝哪边靠)前缀表达式和后缀表达式形成都是对于整个中缀表达式按照运算顺序见运算符就加括号,保证每个运算.原创 2020-05-29 17:00:29 · 5318 阅读 · 0 评论