![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 74
Bug.Remove()
海阔凭鱼跃,天高任鸟飞~
展开
-
字符串匹配算法-----Sunday
字符串匹配算法有很多种,今天我们就来讲一下其中一个匹配算法Sunday。Sunday算法较为容易理解,比KMP算法容易理解的多!!!而且,Sunday算法的匹配速度非常快,大家一定要掌握!!!首先,我们先准备两个用于匹配的字符串,一个是主字符串,用于在这里面匹配匹配字符串,一个是匹配字符串。主:“csapadgsdgdfegapgladgcsdnnsdcaqgeqtdf”匹:“csdnnsdcaq”算法过程首先将匹配字符串与主字符串的开头对其,进行一个一个的比较字符串是否相等,如果相等则同时原创 2021-09-19 09:10:38 · 786 阅读 · 22 评论 -
还在感觉为红黑树所困扰?相信我你就点进来看!!!★★★
红黑树删除,点击这里!!!红黑树 :红黑树是一种特殊的二插查找数,不过为了防止二插查找树在最差情况下蜕变成链表,因此红黑树利用了结点的颜色来调节树的平衡,这使得红黑树的任意一条路径长度都不可能超过其他路径的两倍,因此红黑树是一种自调节的高度平衡的二叉查找树。性质:性质1:结点要么是红要么是黑性质2:根结点必须是黑色性质3:每个叶子结点(NIL)是黑色性质4:每个红色结点的两个子结点一定都是黑色。,不能有两个红色结点相连性质5:从根结点开始,到这条路径上的空结点,各条路径上的黑色结点个数相同原创 2021-09-12 09:55:25 · 237 阅读 · 27 评论 -
KMP算法之next数组详解
KMP算法之next数组详解KMP算法实现原理KMP算法是一种非常高效的字符串匹配算法,下面我们来讲解一下KMP算如何高效的实现字符串匹配。我们假设如下主串和模式串:int i;//i表示主串的下标int j;//j表示模式串的下标char P[]=“ABCABDACFGHEADEW”;//主串char T[]=“ABCABAEABD”;//模式串开始查找 按照正常逻辑,我们都知道,如果我想在主串中匹配“ABCABAEABD”这个模式串,那么我们首先想到的是将主串和模式串中的每个原创 2020-12-03 22:17:02 · 11520 阅读 · 1 评论 -
★★★哈希查找算法(查找字符串中特定字符位置)----简单但是一定要掌握!!!
哈希查找(hash):哈希查找算法始终非常高效的查找算法,其时间复杂度在最好的情况下可以达到O(1),即使是比较坏的情况,时间复杂度也非常低,查找数据非常快。事物都有两面性,有优即有劣。虽然哈希查找非常高效,但是他的高效是以时间换空间的代价来实现的。在如今,空间问题我们很容易解决,比如加内存等。可是时间复杂度的提高就非常难,因此,在允许的情况下,如果可以选择空间换时间,那么我们就一般会选择牺牲空间换取时间上的高效。在这里,我通过查找一个字符串中字符出现的位置来描述一下哈希查找的基本思想。源字符串: “w原创 2021-09-06 10:55:57 · 1694 阅读 · 20 评论 -
你还不懂红黑树删除?看这篇就够了!!!硬淦红黑树---彻底拿下它!!!
红黑树:红黑树是一种特殊的二插查找数,不过为了防止二插查找树在最差情况下蜕变成链表,因此红黑树利用了结点的颜色来调节树的平衡,这使得红黑树的任意一条路径长度都不可能超过其他路径的两倍,因此红黑树是一种自调节的高度平衡的二叉查找树。性质性质1:结点要么是红要么是黑性质2:根节点必须是黑色性质3:每个叶子节点(NIL)是黑色性质4:每个红色节点的两个子节点一定都是黑色。,不能有两个红色节点相连性质5:从根节点开始,到这条路径上的空节点,各条路径上的黑色结点个数相同推论:根据以上五个性质,我们可原创 2021-09-04 12:24:16 · 568 阅读 · 24 评论