- 博客(25)
- 收藏
- 关注
原创 高可用利器-限流
限流是流量限速(Rate Limit)的简称,是一种常见的系统流量控制方式,它通过限制系统的请求或流量,来保证系统的稳定性和可靠性。对于Server而言,限流保证一部分的请求流量可以得到正常的响应,总好过全部的请求都不能得到响应,甚至导致系统雪崩。
2023-03-27 20:52:15
332
原创 平衡二叉搜索树(Balanced Binary Tree)
平衡二叉搜索树是一种结构平衡的二叉搜索树,它的每个结点的左右两颗子树的高度差都不超过一的二叉树。
2023-02-19 16:39:15
789
原创 前缀和(Prefix Sum)
前缀和指一个数组的某下标之前的所有数组元素的和(包含其自身)。前缀和分为一维前缀和,以及二维前缀和。前缀和是一种重要的预处理,能够降低算法的时间复杂度。
2023-01-19 13:23:46
648
原创 确定有限状态自动机(Deterministic Finite Automation)
确定优先状态自动机(Deterministic Finite Automation, DFA)是一种计算模型。
2023-01-19 13:21:12
739
原创 桶排序(Bucket sort)
桶排序又称箱排序(Bucket sort),是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(可能在使用其他的排序算法),最后依次把各个桶中的记录列出来便得到了有序序列。
2023-01-19 11:57:26
521
原创 字典树(Trie)
字典树(Trie),也叫前缀树,是一个比较简单的数据结构,用来存储和查询字符串。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。
2023-01-19 11:52:05
317
原创 最大公约数和最小公倍数(GCD & LCM)—简写版
如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
2023-01-19 11:15:39
599
原创 KMP算法(Knuth-Morris-Pratt字符串查找算法)
KMP算法的全称为Knuth-Morris-Pratt字符串查找算法,是可以在文本串s中快速查找模式串p的一种算法。
2023-01-19 10:54:18
321
原创 快速排序(Quick Sort)
快速排序(英语:Quicksort),又称分区交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。
2023-01-18 15:51:29
252
原创 计数排序(Counting Sort)
计数排序是一种牺牲内存空间来换取低时间复杂度的排序算法,同时它也是一种不基于比较的算法。这里的不基于比较指的是数组元素之间不存在比较大小的排序算法,它可以突破基于比较算法的下限。
2023-01-18 15:08:22
247
原创 二分查找(Binary Search)
二分查找也叫作折半查找。二分查找有两个要求,一个是数列有序,另一个是数列使用顺序存储结构。他的思想很简单,但是在书写过程中如果边界条件无法正确的确定,很容易陷入到循环中无法跳出。
2023-01-18 14:59:17
662
原创 二叉搜索树(Binary Search Tree)
二叉搜索树又叫二叉排序树、二叉查找树,支持多种操作,包括Search、Minimum、Maximum、Predecessor、Successor、Insert和Delete等操作,且其基本操作所花费的时间与这棵树的高度成正比。
2023-01-18 14:56:35
684
原创 二叉堆(Binary Heap)
堆是完全二叉树,最大堆和最小堆是二叉堆的形式,按照最大元素位于根节点排列的二叉堆被称为最大堆,同理按照最小元素位于根节点排列的二叉堆被称为最小堆。
2023-01-18 14:45:06
195
原创 单调栈(Monotonic Stack)
单调栈是一种和单调队列类似的数据结构。单调栈主要在O(n)复杂度下解决Next Greater Element(NGE)问题(对序列中的每个元素找下一个/上一个比他大/小的元素)。
2023-01-18 14:30:10
552
原创 单调队列(Monotonic Queue)
单调队列是一种主要用于解决滑动窗口类问题的数据结构,即在长度为n的序列中,求每个长度为m的区间的区间最值,其的时间复杂度为O(n)。
2023-01-18 14:24:09
991
原创 并查集(Union-Find Disjoint Sets)
并查集是一种树型的数据结构,主要适用于解决一些元素的分组问题。它管理一系列不相交的集合,并支持合并和查询两种操作。
2023-01-18 14:17:21
301
原创 Dijkstra算法
给定一个带权有向图G=(V,E),其中每条边的权是一个实数。另外,还给定V中的一个顶点,称为源。要计算从源到其他所有各顶点的最短路径长度。这里的长度就是指路上各边权之和。这个问题通常称为单源最短路径问题。
2023-01-18 14:08:39
217
原创 组合数的计算方法(Combinatorial Number)
从n个不同元素中取出mm≤n个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。
2023-01-18 14:04:47
1325
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人