![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
张小鸣
这个作者很懒,什么都没留下…
展开
-
最长子序列问题——动态规划算法初解
求一个数字序列串,最长有序子序列串的问题,用到了动态规划思想,将问题分解为若干个子问题,保存求解子问题时获得答案,在求解下面问题时直接获取,省略多余的重复计算。原创 2016-03-21 16:10:43 · 3362 阅读 · 0 评论 -
银行家算法(1)——概念与举例说明(多进程管理资源分配避免死锁)
在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。原创 2016-03-22 21:12:53 · 11714 阅读 · 3 评论 -
无锁算法——CAS原理
一、无锁算法CAS(比较与交换,Compare and swap) 是一种有名的无锁算法。无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Synchronization)。实现非阻塞同步的方案称为“无锁编程算法”( Non-blocking algorithm)。原创 2017-04-09 09:32:28 · 17056 阅读 · 0 评论 -
数据结构——B-tree(多路搜索树)
一、前言B-tree树(多路搜索树,非二叉树),B即Balanced,平衡的意思,有别于二叉查找树(Binary Search Tree),在国内有经常将两者都写作B-树的情形,这其实是非常容易混淆的直译,因为这两种树有非常大的差别,不是同一种数据结构。所以,希望在提到B-tree树时,可以加上多路搜索树的全程,或者读成Balanced Tree以明确区分。还有~如果读成了B减树,那可真就丢人了~原创 2017-08-02 16:08:34 · 3922 阅读 · 2 评论 -
字符串匹配算法——KMP算法简单解释
一、字符串匹配算法KMPKMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。原创 2017-10-23 18:59:37 · 2617 阅读 · 0 评论 -
KMP算法之java实现
一、KMP算法KMP算法的理解请参考上一篇博客:http://blog.csdn.net/roy_70/article/details/78321930 这里说一下具体如何来用代码实现KMP算法二、部分匹配表接下来说一下部分匹配表是如何生成的。首先,要了解两个概念:”前缀”和”后缀”。 “前缀”指除了最后一个字符以外,一个字符串的全部头部组合;”后缀”指除了第一个字符以外,一个字符串的全部尾部组合原创 2017-10-24 15:36:13 · 3832 阅读 · 2 评论