每日算法 — 使用java实现跳表:概率性多层链表与O(log n)高效查找
引言 跳表(Skip List)是一种由 William Pugh 于1990年提出的概率性数据结构,它通过在有序链表上建立多级索引,实现了与平衡二叉搜索树相媲美的平均 O(log n)...
每日算法 — 使用java实现布隆过滤器:位数组与多哈希函数的空间高效判重
引言 布隆过滤器(Bloom Filter)由 Burton Howard Bloom...
每日算法 — 使用java实现蓄水池抽样:数据流环境下的无偏随机采样
引言 在大数据时代,数据往往以流的形式持续产生,总量可能达到 TB 甚至 PB 级别,无法全部加载到内存中处理。蓄水池抽样(Reservoir...
每日算法 — 使用java实现AC自动机:Trie树与失败指针的多模式串匹配
引言 在文本处理领域,单模式串匹配(如 KMP...
每日算法 — 使用java实现树状数组:二进制索引与区间查询的O(log n)解法
引言 在竞赛编程和工程实践中,频繁遇到这样的需求:维护一个数组,支持快速修改某个元素的值,以及快速查询某个区间的和。如果使用普通数组,修改是 O(1)...
每日算法 — 使用java实现伪随机数生成器:线性同余法与梅森旋转算法
伪随机数生成器(Pseudorandom Number Generator,...