递归
递归

递归是什么? 递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自... » 阅读全文

树状数组(Binary Indexed Tree)
树状数组(Binary Indexed Tree)

树状数组或二叉索引树(英语:Binary Indexed Tree),又以其发明者命名为Fenwick树。文章先介绍低位运算(lowbit)的基本知识,再提及如何将一个整数划分为Log n个区间的运算过程,进而延展到如何将线性序列以树行结构进行存取,最后介绍了高级数据结构——树状数组的两个基本操作——查询前缀和与单点增加。

后缀数组(Suffix Array)
后缀数组(Suffix Array)

本文介绍后缀数组的定义与构建的过程。首先,文章介绍什么是后缀数组,随后讲解了最自然的朴素算法。为了引出更高效的算法,文章首先提及倍增思想与基数排序的背景基础知识。接着,通过模拟演练的方式一步一步地演示如何创建后缀数组。将构建的抽象过程形象地展示出来,使读者更易理解。