时间有限,草稿版本,以后深入研究再修。
前言
我们介绍得是抽象代数(abstract algebraic, modern algebraic)的结构,相对的我们熟悉的初等代数(elementary algebraic)就是研究代数方程,而我们抽象代数,显然就是更抽象了,但还有在它之上抽象的存在,那就是范畴论(category theory),是从哲学系那边转学过来的。
质数筛子的原理是质因数分解。
介绍下在分析算法复杂度时用到的标记符号,及其数学来源。
定义
题干
题干
前言
基本概念
前言
通常为了分类页面的干净,不将LeetCode题解的文章放到算法分类里,但这一篇实在精彩,涉及了其他算法没有介绍过的,关于大量子串比较的通解性思路
前言
前言
概念基础
是解决有前置课程限制的课表安排之类的问题,用有向边代表一个事件和它的前置事件,那么这样构成的有向图的拓扑排序(结果并不唯一)就是一个规划方案。
本文资料来源于12 Depth-first search and linear graph algorithms R Tarjan - SIAM journal on computing, 1972 ↩ Algorithm 447: efficient algorithms for graph manipulation J Hopcroft, R Tarjan - Communications of the ACM, 1973 ↩
本文主要参考 OI-wiki 以及 cp-algorithms.com 相关页面1 没有找到讲得特别清楚又特别详细的资料,cp-algorithms.com 本篇的从风格到质量都有失水准,反而 OI-wiki 还比较详细,明明是早已有的概念,却有相当多的内容上是近期更新的 ↩
本文主要参考 wiki ,对其中一些内容进行了拓展,对个别错误进行了修正。
1st revision - 2024-12-15
假设对于非负整数,$a$ , $b$ ,求它们的最大公约数 $\text{gcd}(a, b)$ ,以下简写作 $g$ 。
题干
在前面介绍了从 Fibonacci 堆、Dary 堆,到图上的诸多算法,从 BST 到 BT 的一系列数据结构和算法,并提供了它们的 Rust 实现,如果把这些代码都集成起来,可能就会发现这个编译的过程怎么这么熬人,似乎越来越让人难以忍受,这时可以参考一下另篇关于降低构建时间的笔记。
继承前两篇 B+树(Vec) 和 B+树(TreeMap) 的完整版 B+ 树 (Vec) 实现。系列所有代码可以在这里
对于 B 树来说,传统上有一种对节点分裂、合并时性能的改进方法,就是把存储结构由数组改为 TreeMap 。TreeMap 或者有序字典,比如我们前面介绍的所有的 BST,比如红黑树,以及,我们 B 树。
在前一篇的文章里介绍了 B 树,这里介绍它的变种 B+ 树的基本实现。
B 树是波音实验室的 Rudolf Bayer and Edward M. McCreight 最初发明用来存储大量索引(超过主内存)的数据结构,在 1970 年的论文里正式提出。
基本概念
基本概念
基本概念
基本概念
基本概念
基本概念
基本概念
前文介绍了二叉搜索树基础 ,这里是第一个自平衡的二叉搜索树 – AVL树,它是在 1962 年由前苏联的科学家 Georgy Adelson-Velsky 和 Evgenii Landis 提出的。它有最严格的平衡限制,因此有理论最佳的搜索效率。
作为一系列自平衡(self-balancing)的二叉搜索树的博文的起始,这篇先介绍基础部分,之后的各篇将专注于 增/删 节点后,树重新平衡的部分。
关于龙书
1st revision at 2025-01-01
1st revision - 2024-12-28
一个有建立在连续内存上的 $2$ 的 $n$ 次幂倍分叉完全树的最小堆(以下简称 d-ary 堆),理论和实践都最快的,用于图上经典贪心算法,作为斐波那契堆的上位替代。
前言
前言
算法理论部分,在上一篇文章 Fibonacci Heap 已经讲完了,下面是实现的部分1。 https://github.com/minghu6/rust-minghu6/blob/snapshot-1/src/collections/heap/fib.rs ↩
Fibonacci Heap12 3是一个基于链表结构的,理论时间复杂度很优的堆。 https://www.cs.princeton.edu/~wayne/teaching/fibonacci-heap.pdf ↩ http://www.cs.princeton.edu/~wayne/kleinberg-tardos/pdf/FibonacciHeaps.pdf ↩ https://en.wikipedia.org/wiki/Fibonacci_heap ↩
概念
本章介绍线性时间复杂度的后缀排序的就地算法1(Optimal In-Place Suffix Sorting)。 Li, Zhize; Li, Jian; Huo, Hongwei (2016). Optimal In-Place Suffix Sorting. Proceedings of the 25th International Symposium on String Processing and Information Retrieval (SPIRE). Lecture Notes in Computer Science. 11147. Springer. pp. 268–284. arXiv:1610.08305. doi:10.1007/978-3-030-00479-8_22. ISBN:978-3-030-00478-1. ↩
author: minghu6