Manacher算法

在计算机科学中,最长回文子串或最长对称因子问题是在一个字符串中查找一个最长的连续的回文的子串,例如“banana”最长回文子串是“anana”。最长回文子串并不一定是唯一的,比如“abracadabra”,没有超过3的回文子串,但是有两个回文字串长度都是3:“ada”和“aca”。在一些应用中,我们求出全部的极大回文子串(不被其他回文串包含的回文子串)。

手撕红黑树

红黑树,作为一种复杂的数据结构,曾经也是令我抓狂。但是该结构也是相当重要的结构,在 Java 的 TreeMap 中的实现就是红黑树这个高级数据结构。本文会对红黑树算法可行性进行证明,并且给出最终实现,以下理解若有出入,希望能够指出。

二叉树神级遍历方法

二叉树遍历的方法有很多,例如:前序遍历,中序遍历,后序遍历。但是时间复杂度却只能做到 O(N), 空间时间复杂度 O(N)。今天要介绍是 morris 遍历,时间复杂度可以做到 O(N),空间时间复杂度可以做到 O(1)。

TOP-K 问题的终极算法 - BFPRT 算法

TOP-K 问题,从一堆无序数据里面找到前 K 大(当然也可以是前 K 小的数。我可以用堆排序或者快速排序可以做到,但是时间复杂度为 O(NlogN), 这里就不多说了。BFPRT 算法,该算法于1973年由 Blum、Floyd、Pratt、Rivest 和 Tarjan 联合发明,其中蕴含的深刻思想改变了世界。BFPRT 算法解决了这样一个问题,在时间复杂度 O(N)内,从无序的数组中找到第 K 小的数。

完全弄懂 KMP 算法

在大学时期,学习 KMP 算法感觉自己好似懂,但是好似又不懂,书里看的云里雾里不知所起然,最近对算法重新进行学习,对于 KMP 算法有了更深刻的理解。

(译) Raft 论文

摘要

Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明,对于学生而言,Raft 算法比 Paxos 算法更加容易学习。Raft 算法还包括一个新的机制来允许集群成员的动态改变,它利用重叠的大多数来保证安全性。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×