![](https://img-blog.csdnimg.cn/20200104231828610.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Code Castle
文章平均质量分 92
fight
SonnSei
找到你的爱和热爱
展开
-
字符串匹配--KMP
/** * @Classname KMP * @Description 注意时间复杂度是O(n+m) * @Date 2020/1/4 9:49 * @Author SonnSei */public class KMP { public static int KMP_Sarch(String s, String p) { char[] sChars = s.to...原创 2020-01-04 23:25:46 · 40 阅读 · 0 评论 -
字符串匹配--RK
文章目录1. 概述1.1 问题描述1.2 BF铺垫1.3 RK的优化1.4 需要注意的点代码实现1. 概述1.1 问题描述假设我们有:①长度为n的主串s②长度为m的模式串p而我们的目的是在主串中检查是否存在模式串1.2 BF铺垫在BF(暴力法,Brute Force)中,我们采取的策略是从s中依次取m长度的字串与p做比较,而这样的话,时间复杂度就是O(n×m){O(n\time...原创 2020-01-03 20:42:22 · 154 阅读 · 0 评论 -
sieve of Eratosthenes
文章目录目的1. 普通方法2. 普通方法优化3. 埃拉托斯特尼筛法普通版4. 埃拉托斯特尼筛法改进版埃拉托斯特尼筛法目的求解1到n之间素数的个数1. 普通方法很质朴地遍历,然后判断每个数是否是质数时间复杂度:O(n2){O(n^2)}O(n2)class Solution { public static int countPrimes(int n) { i...原创 2019-12-31 11:23:15 · 127 阅读 · 0 评论 -
最小生成树-Prim
算法基本思想非常简单,将顶点分成两个集合U与V-U 每次从V-U中找到距离集合U最近的点E 取点E与集合U的最短连接边作为生成树的一条边 将E放入集合U中 重复,直到V-U为空可以发现,其中比较关键的一个步骤就是寻找两个集合的最短连接边,我们可以用暴力方法解决,但是开销太大,所以这里我们可以这么做建立两个数组:closest与lowcost closest用来记录集合V-...原创 2019-10-14 10:45:56 · 268 阅读 · 0 评论 -
最小生成树-Kruskal
算法思路非常简单用并查集的思想,N个点形成N个集合 对图中的K条边按照权重从小到大排序 取一条最小的边,如果边的两个顶点不属于同一集合,则采用这条边,同时合并两个顶点所在的集合 如果两个顶点属于同一集合,则会形成回路,此时该舍弃该边,继续寻找下一条public class Kruskal { static final int N = Integer.MAX_VALUE;...原创 2019-10-14 14:09:41 · 79 阅读 · 0 评论 -
汉诺塔
汉诺塔问题大家都知道是什么情况,题目描述就没什么好说的了关键点:如何拆分子问题1. 我们可以把题目抽象成这样:借助B,将A的块移动到C上2. 我们可以认识到这样一个问题,最大的块(蓝色)其实是可以从问题中暂时摘除的,因为它在哪都是处于最底层,它上面可以放任何块,它和底座没啥区别。3. 理解这样一个过程:把红色块和橙色块借助C移动到B,该过程和我们的整体过程是一致的,只是规模较...原创 2019-10-15 10:08:08 · 159 阅读 · 0 评论 -
最短路径-迪杰斯特拉
迪杰斯特拉是求单源最短路径的问题,有向带权图G=(V,E),每条边的权是非负实数算法思路:假定源点为u,顶点集合V被划分为两个部分:集合S和集合V-S,初始时S中仅含有u(假定图中绿色为V,求1到5的最短路径)接下来,从V-S结合中找出dist最小的点,将其放入V中,并且以该点为媒介,更新dist和pre继续找继续找,这一次没有更新最后一次,算法结束...原创 2019-10-14 08:19:48 · 365 阅读 · 0 评论 -
Fibonacci的个人总结的常见5种解法
代码在最后面第一种:普通递归代码写起来最简单,但是性能很差,容易爆栈从图中也可以看出,存在很多次的重复计算,所以我们自然会想到针对这一问题进行改进第二种:自顶向下的备忘录法从图中可以看出,这一趟递归就已经完成了所有子问题的计算,所以,在这里我们的思路就是在这一趟中就把子问题的解存起来,下次用的时候就不需要再计算了但是毕竟每次递归的时候还需要存储上下文,所以性能也不是...原创 2019-06-08 14:32:16 · 287 阅读 · 0 评论 -
十种排序算法
介绍十种基本的排序算法,并给出Java实现原创 2019-12-20 07:30:03 · 73 阅读 · 0 评论