算法
文章平均质量分 90
JERRY_PRI
这个作者很懒,什么都没留下…
展开
-
字符串匹配——有限自动机
参考文献:算法导论 有限自动机包含一个五元组(Q, q0, A, ∑, δ) Q表示状态有限集 q0为初始状态(q0 ∈Q) A表示接受状态的集合(A 是Q的子集) ∑是输入字母表 δ是状态转移函数 *对于终态函数我还不是很理解,希望大家不吝赐教 算法导论上有一个例子 P = ababaca 那么转换成五元组是 Q = { 0:, (表示第1原创 2013-06-02 16:56:54 · 1142 阅读 · 0 评论 -
为什么红黑树的时间复杂度为lgn——渐进边界的证明
维基百科 包含n个内部节点的红黑树的高度是 O(log(n))。 定义: h(v) = 以节点v为根的子树的高度。bh(v) = 从v到子树中任何叶子的黑色节点的数目(如果v是黑色则不计数它)(也叫做黑色高度)。 引理: 以节点v为根的子树有至少个内部节点。 引理的证明(通过归纳高度): 基础: h(v) = 0 如果v的高度是零则它必定是 nil,因转载 2013-05-24 17:51:00 · 15454 阅读 · 4 评论 -
Dynamic Programming(动态规划)
参考文献:算法导论 可以使用动态规划的两个充分条件: 1.最优子结构(一个问题的最优解中包含了子问题的最优解,也可以适用贪心策略) 2.重叠子问题(一个递归树在不同的分支中可能碰到相同的子问题) DP步骤: 1.描述最优解的结构 2.递归定义最优解的值 3.按自底向上的方式计算最优解的值 4.由计算出的结果构造一个最优解 通过工厂最快路线问题 题设:工厂原创 2013-06-07 15:20:47 · 735 阅读 · 0 评论 -
字符串匹配——KMP
参考文献:算法导论 实际匹配过程引用自:http://ds.fzu.edu.cn/fine/resources/FlashContent.asp?id=40 KMP和有限自动机一样,需要对模式串有预处理,但是KMP对模式串的预处理时间复杂度为O(m),而有限自动机的时间复杂度为O(m|∑|),显然KMP是一种更为高效的算法 和有限自动机一样,KMP也需要预先处理一个函数π原创 2013-06-02 20:39:44 · 788 阅读 · 0 评论