
数据结构和算法
学习笔记
抽烟喝酒烫头都不干
这个作者很懒,什么都没留下…
展开
-
KMP模式匹配算法
#include <iostream> #include <string> int next[255]; void getnext(const std::string &str) { int i = 0; int j = -1; next[0] = -1; while (i < str.size()) { if (j == -1 || str[i] == str[j]) {原创 2021-08-20 17:18:31 · 105 阅读 · 0 评论 -
二叉搜索树、B树、B+树、AVL树、红黑树、Trie树
知乎: 万字大总结,一文搞懂二叉搜索树、B树、B+树、AVL树、红黑树 . 知乎: 通俗易懂的图文 红黑树,B树,B+树 本质区别及应用场景 . Trie并不是平衡树,也不一定非要有序。它主要用于前缀匹配,比如字符串,比如说ip地址,如果字符串长度是固定或者说有限的,那么Trie的深度是可控制的,你可以得到很好的搜索效果,而且插入新数据后不用平衡。不过Trie不像B-tree通用性那么强,你需要针对你自己的实际应用来设计你自己的Trie,比如说你做个字典应用,是用26个字母,还是用unicode来前缀匹配?转载 2021-08-10 11:11:22 · 202 阅读 · 0 评论 -
LRU以及实现
LRU以及实现简介实现 简介 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1、新数据插入到链表头部; 2、每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 3、当链表满的时候,将链表尾部的数据丢弃。 实现 #ifndef LRU_LRUCACHE_H_ #define LRU_LRUCACHE_H_ #include<iostream> #include&原创 2021-07-23 15:15:08 · 129 阅读 · 0 评论 -
剑指offer 源码
链接: link.转载 2021-07-21 15:54:52 · 270 阅读 · 0 评论