![](https://img-blog.csdnimg.cn/a6a84182d5284c4692ca777ecee564f2.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 77
算法
寅鸷
游戏服务器开发,擅长 c++,golang,lua,python,k8s,docker,redis,mysql,mongodb
展开
-
btree和b+tree
btree是为了磁盘或其它存储设备而设计的一种多叉平衡查找树(相对于二叉,btree每个内结点有多个分支,即多叉),而b+tree是btree的一个变种,是b+tree在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。从上图可以看出每个节点占用一个盘块的磁盘空间,一个节点上有两个升序排序的关键字和三个指向子树根节点的指针,指针存储的是子节点所在磁盘块的地址。两个关键词划分成的三个范围域对应三个指针指向的子树的数据的范围域。以根节点为例,关键字为17和35,P1指针指向的子树的数据范围为小于原创 2022-07-13 16:00:07 · 2028 阅读 · 0 评论 -
LRU缓存,redis内存淘汰实现
leetCode 146请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-valu原创 2022-07-12 10:46:21 · 261 阅读 · 0 评论 -
固定时间刷新算法
对于很多app来说都有需要在固定时间刷新的功能,例如游戏中的任务系统,每日任务的话就需要每天固定时间点刷新(每天早上8点刷新);在京东app中也有一个浇水的功能,里面的任务就是每天刷新。以下代码使用lua实现2. 取余nowTime 只有两种可能,8点之前A,8点之后B那么 nextRefreshTime = A + S1 或者 B + S2即 nextRefreshTime = nowTime + ( S1 或 S2 )现在只要把 S1 ,S2 两段距离的计算公式统一成 S3 就行了即最原创 2022-07-04 11:56:41 · 714 阅读 · 0 评论 -
基于权重(别名采样alias sample) 的随机选择算法
转载用于收藏学习,尊重原创原文链接1,原文链接2当我们得到一个概率分布,如何根据这个概率分布抽样是一个常见的问题。这篇文章将介绍alias method(别名采样),这种算法的时间复杂度为O(1),当然还需要复杂度为O(n)的预处理。下面我将通过一个例子介绍别名采样算法。问题背景 假设一共存在A,B,C,D四种情况,它们出现的概率分别为 0.3,0.1,0.1,0.5。如何实现按概率抽样呢?比较常用的一种方法是生成一个数组:1,1,1,2,3,4,4,4,4,4,其中1对应A,2对应B,以此类推转载 2022-05-13 18:15:01 · 896 阅读 · 0 评论