- 博客(5)
- 收藏
- 关注
原创 KMP算法
KMP算法(Knuth-Morris-Pratt算法)是一种用于字符串匹配的经典算法,其目的是在一个主文本串(text)中高效地查找一个模式串(pattern)的出现位置。相较于朴素的字符串匹配算法,KMP算法具有更高的效率,特别是在处理大文本和长模式串时。引出KMP算法之前,我们必须了解朴素的字符串匹配算法(暴力算法)的实现假设主文本串 text = “ababcabcababcab”,模式串 pattern = “ababcab”
2024-07-19 14:53:41
1217
原创 数据结构-trie树 插入,查询操作详解
Trie树(也称为字典树、前缀树)是一种专门用于处理字符串的数据结构。它的主要特点是能够提供高效的插入、查找操作,尤其适用于需要频繁搜索、前缀匹配和大量字符串存储的应用场景。需要明确的是:1.Trie树是一种树形结构,每个节点代表一个字符或者字符串的一部分。2.每个节点通常有多个子节点,每个子节点对应一个字符,从而形成树状结构。我们根据这两个特征来进行插入操作,通过一道模板题更直观的理解代码实现。
2024-07-16 18:41:16
979
原创 并查集(标准并查集、带权并查集、扩展域并查集)
并查集是一种数据结构,用来管理集合之间的关系,可以用来进行判断是否属于同一集合或将不同的集合合并等操作。我们用个生活中的例子来说明一下原本小明家这个集合只有小明,小红家只有小红,那么他们结婚后(合并)就属于一个家庭(一个集合),像这样,通过并查集我们能够合并不同的集合,然后还能快速地查找他们是不是同一个集合。
2024-07-15 18:06:38
4403
1
原创 堆,向下调整的递归和非递归实现,堆排序,STL中的优先队列,
在交换值得同时,由于值对应的下标有所改变,那么下标对应的k值一定发生了变化,那么ph里面的值就要发生改变,但如果要改变ph中的值,那我们就要开一个数组来记录下标对应的k值,然后根据这个k值,作为ph的索引,改变两个不同k值对应的下标。这里需要用到插入,插入肯定是在末尾插入的,那么有向下调整的操作,那么一定有向上调整的操作,和向下调整同理,如果孩子节点比父亲节点小,那么需要进行向上调整。2.4的节点仍然没有满足大于两个孩子节点的条件,所以继续调整,到了最终状态,满足小根堆的条件。
2024-07-14 20:20:14
970
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人