horspool算法c语言(horspool算法时间复杂度)
本篇目录:
- 1、字符串匹配的传统算法
- 2、10个常用算法
字符串匹配的传统算法
1、传统的串匹配算法可以概括为前缀搜索、后缀搜索、子串搜索。代表算法有KMP,Shift-And,Shift-Or,BM,Horspool,BNDM,BOM等。所用到的技术包括滑动窗口、位并行、自动机、后缀树等。
2、LCSL是LongestCommonSubsequence的缩写,意为最长公共子序列。在计算机科学中,它是一种经典的字符串匹配算法。LCSL算法可用于求解两个字符串之间的最长公共子序列,即在两个非空字符串中找到最长的共同子序列。
3、我们在BF算法的基础上引入哈希算法,我们不需要将每个子串与模式串逐个字符地进行比较,而是计算得出每个子串的hash值,然后和模式串的hash值进行比较,如果有相等的,那就说明有子串和模式串匹配上了。
4、针对BF的弊端,在KMP算法中可以进行多字符的跳跃对比,以此来避免目标串的不必要回溯。
5、搜索词移动的时候,第一个AB向后移动4位(字符串长度-部分匹配值),就可以来到第二个AB的位置。BM(Boyer-Moore)算法。
6、KMP算法也是有缺陷的,比如主串S=“aaaabcde”,模式串T= “aaaaax”。
10个常用算法
1、算法八:Dijkstra算法 戴克斯特拉算法(Dijkstra’s algorithm)是由荷兰计算机科学家艾兹赫尔·戴克斯特拉提出。迪科斯彻算法使用了广度优先搜索解决非负权有向图的单源最短路径问题,算法最终得到一个最短路径树。
2、人工智能常用的算法有:线性回归、逻辑回归、决策树、朴素贝叶斯、支持向量机等。线性回归 线性回归(Linear Regression)可能是最流行的机器学习算法。
3、逻辑回归逻辑回归算法基于一个概率模型,用于预测给定数据集的类别。该算法通过计算每个类别的概率,并将概率最高的类别作为预测结果。
到此,以上就是小编对于horspool算法时间复杂度的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。