![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构及算法
文章平均质量分 87
qq_43133135
这个作者很懒,什么都没留下…
展开
-
并查集详解
并查集主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作:合并(Union):把两个不相交的集合合并为一个集合。查询(Find):查询两个元素是否在同一个集合中。对于合并的作用,我们可以将相似的集合合并到一起,接下来详细讲解一下。原创 2023-02-23 17:05:15 · 250 阅读 · 0 评论 -
KMP匹配算法详解
暴力匹配对于在一个字符串中匹配目标字符子串,我们会有很多方法,最简单的就是暴力匹配算法:文本串S: BBC_ABCDAB_ABCDABCDABDE模式串P: ABCDABD首先匹配 S[0] 和 P[0] :不一样,S移动一步,P回到起始位置,再匹配 S[1] 和 P[0] :仍旧不一样,继续向右匹配,直到 S[3] 和 P[0] 匹配上:然后两者同时后移,匹配S[3+1] 和 P[1] :一直移动,直到S[3+6] 和 P[6] 匹配不上:然后S回到S[4] ,P则回到 P原创 2022-03-21 02:10:50 · 364 阅读 · 0 评论 -
Adaboost
基本原理基本原理就是将多个弱分类器结合,形成一个强分类器。Adaboost采用迭代的思想,每次迭代只训练一个弱分类器,训练好的弱分类器将参与下一次迭代的使用。也就是说,在第N次迭代中,一共就有N个弱分类器,其中N-1个是以前训练好的,其各种参数都不再改变,本次训练第N个分类器。其中弱分类器的关系是第N个弱分类器更可能分对前N-1个弱分类器没分对的数据,最终分类输出要看这N个分类器的综合效果。弱分类器(单层决策树)Adaboost一般使用单层决策树作为其弱分类器,且其输出只有二值(1,-1)。单原创 2020-12-14 14:05:34 · 2037 阅读 · 0 评论 -
动态规划浅析(DP)
动态规划步骤动态规划,无非就是利用历史记录,来避免我们的重复计算。而这些历史记录,我们得需要一些变量来保存,一般是用一维数组或者二维数组来保存。主要可以分为3个步骤:第一步骤:定义数组元素的含义我们会用一个数组来保存历史s数据,假设用一维数组 dp[] 。这个时候有一个非常非常重要的点,就是规定你这个数组元素的含义,例如你的 dp[i] 是代表什么含义第二步骤:找出数组元素之间的关系式类似于归纳法的,当我们要计算 dp[n] 时,是可以利用 dp[n-1],dp[n-2].....dp[1],原创 2020-09-12 14:23:06 · 372 阅读 · 0 评论