会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
evenleo
博客园
首页
新随笔
联系
订阅
管理
随笔 - 55
文章 - 0
评论 - 6
阅读 -
13万
2020年12月22日
LRU cache 实现
摘要: 前言 LRU 是 Least Recently Used 的简写,字面意思是最近最少使用。 通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被撑满。 代码实现 #ifndef _LRU_CACHE_H_ #define _LRU_CACHE_H_ #inc
阅读全文
posted @ 2020-12-22 10:20 evenleo
阅读(208)
评论(0)
推荐(0)
2020年7月21日
二叉树常见算法总结和C++实现
摘要: 二叉树 知识点 前序遍历:先访问根节点,再前序遍历左子树,然后前序遍历右子树 中序遍历:先中序遍历左子树,再访问根节点,然后中序遍历右子树 后序遍历:先后续遍历左子树,再后续遍历右子树,然后访问根节点 注意: 以根节点访问顺序决定什么遍历 左子树都是优于右子树 前序遍历 struct TreeNod
阅读全文
posted @ 2020-07-21 15:55 evenleo
阅读(564)
评论(0)
推荐(0)
跳表原理及C++实现
摘要: 引言 二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现。如果数据存储在链表中,就真的没法用二分查找算法了吗?实际上,只需要对链表稍加改造,就可以支持类似“二分”的查找算法。改造之后的数据结构叫作跳表。 定义 跳表是一个随机化的数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃列表的
阅读全文
posted @ 2020-07-21 15:48 evenleo
阅读(1106)
评论(0)
推荐(0)
2020年4月9日
结构笔记—串的基本操作及串的模式匹配算法
摘要: 下面实现几种串的基本操作,这些操作是构成串其他复杂操作的基石。因为相对简单,功能和分析的说明均在代码实现中。 /*动态分配存储结构*/ typedef struct { char *ch; int length; }Str; /*赋值操作*/ int strAssign(Str &str, char
阅读全文
posted @ 2020-04-09 07:13 evenleo
阅读(654)
评论(0)
推荐(0)
2019年12月31日
Bloom Filter布隆过滤器原理和实现(2)
摘要: 这一篇主要是根据 leveldb 实现的 布隆过滤器的简单版 #include <iostream> #include <cstring> using namespace std; #ifndef FALLTHROUGH_INTENDED #define FALLTHROUGH_INTENDED \
阅读全文
posted @ 2019-12-31 08:21 evenleo
阅读(374)
评论(0)
推荐(0)
2019年12月11日
Bloom Filter布隆过滤器原理和实现(1)
摘要: 引子 《数学之美》介绍布隆过滤器非常经典: 在日常生活中,包括设计计算机软件时,经常要判断一个元素是否在一个集合中。比如: 在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中); 在FBI,一个嫌疑人的名字是否已经在嫌疑犯的名单上; 在网络爬虫里,一个网站是否已访问过
阅读全文
posted @ 2019-12-11 07:36 evenleo
阅读(431)
评论(0)
推荐(0)
2019年12月7日
bitmap位图原理和实现
摘要: 引子 首先通过一道题来理解什么是bitmap。 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? 分析: 假设一个int占4个字节(32位),40个亿个整数就是160亿个字节,大概相当于16GB,假设一台计算机只有2GB内存,则16GB一次加载不完,需要
阅读全文
posted @ 2019-12-07 10:49 evenleo
阅读(1791)
评论(0)
推荐(0)
2019年12月5日
leveldb单元测试之宏定义源码剖析
摘要: 前言 leveldb 是一个库,没有 main() 函数入口, 故非常难理清其中的代码逻辑。但好在库中有非常多的单元测试代码,帮助读者理解其中的各个模块的功能。然而,测试代码个人觉得一开始看时非常费解,特别是其中非常复杂的宏定义让人陷于云里雾里一般。研究 leveldb 的时间也有一段时间了,但一直
阅读全文
posted @ 2019-12-05 17:04 evenleo
阅读(481)
评论(0)
推荐(0)
2019年11月30日
斐波那契数列Fibonacci问题—动态规划
摘要: 斐波那契数列定义 Fibonacci array:1,1,2,3,5,8,13,21,34,... 在数学上,斐波那契数列是以递归的方法来定义: F(0) = 0 F(1) = 1 F(n) = F(n-1) + F(n-2) 用文字描述,就是斐波那契数列由0和1开始,之后的斐波那契系数就是由之前的
阅读全文
posted @ 2019-11-30 07:43 evenleo
阅读(1637)
评论(0)
推荐(0)
2019年11月29日
Linux安装jemalloc笔记
摘要: 前言 最近研究一个工具库需要用 jemalloc 做内存分配器,但在 ubuntu 下安装过程中遇到很多问题,故记下安装过程的笔记,避免以后遇到在这上面浪费时间。 安装过程 环境:VMware Ubuntu 18.04.3 LTS cd ~/桌面 wget https://github.com/je
阅读全文
posted @ 2019-11-29 21:54 evenleo
阅读(8905)
评论(0)
推荐(0)
下一页
公告
昵称:
evenleo
园龄:
7年4个月
粉丝:
15
关注:
13
<
2025年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
我的标签
LRU
(1)
随笔档案
2020年12月(1)
2020年7月(2)
2020年4月(1)
2019年12月(5)
2019年11月(9)
2019年10月(8)
2019年9月(2)
2019年8月(4)
2019年7月(2)
2019年6月(3)
2019年5月(1)
2019年3月(1)
2019年2月(8)
2018年3月(4)
2018年2月(4)
阅读排行榜
1. C++四种类型转换总结(27235)
2. 跳台阶问题(递归、动态规则、变态跳台阶)(13917)
3. 二叉树的线索化(11895)
4. 判断一棵树是否是二叉搜索树(11556)
5. Linux安装jemalloc笔记(8905)
评论排行榜
1. AVL树C++实现(3)
2. 哈夫曼编解码压缩解压文件—C++实现(1)
3. 合并两个排序的链表递归和非递归C++实现(1)
4. 跳台阶问题(递归、动态规则、变态跳台阶)(1)
推荐排行榜
1. C++四种类型转换总结(5)
2. 跳台阶问题(递归、动态规则、变态跳台阶)(4)
3. 哈夫曼编解码压缩解压文件—C++实现(2)
4. 合并两个排序的链表递归和非递归C++实现(2)
5. 判断一棵树是否是二叉搜索树(2)
最新评论
1. Re:跳台阶问题(递归、动态规则、变态跳台阶)
当n = n 时,第一次跳出一阶后,后面还有f(n-1)中跳法; 第一次跳出二阶后,后面还有f(n-2)中跳法......第一次跳出n阶后,后面还有 f(n-n)中跳法,即: f(n) = f(n-1...
--lazyy
2. Re:哈夫曼编解码压缩解压文件—C++实现
哥,你还在吗?我下载了你的代码,有问题,我改不出来,可以请教请教你吗?
--武唔呜
3. Re:AVL树C++实现
一个小问题 rebalance函数中,判断是否左左或左右 if (balance_fector(node->left) > 0) //根节点左孩子的左子树更高,这里判断为左左 node = right...
--启航的启航
4. Re:AVL树C++实现
@Jaymz168 其实,我是找最小的节点的,你应该是没看清,不过我最近有优化了实现,你可以再看看...
--evenleo
5. Re:AVL树C++实现
删除节点的时候,minNode 函数应该要去找最小的吧,如果不是去找最小的,当树具备较高层次时,删除较高节点不会异常吗,删除时直接给数据赋值过来,要是右节点有儿子节点呢,这里链就直接断了,删除叶子节点...
--Jaymz168
点击右上角即可分享