数据结构与算法
文章平均质量分 68
数据结构与算法
shintyan
这个作者很懒,什么都没留下…
展开
-
数据结构——一致性哈希
一、概述(1) 传统哈希(硬哈希)分布式系统中,假设有 n 个节点,传统方案使用 mod(key, n) 映射数据和节点。当扩容或缩容时(哪怕只是增减1个节点),映射关系变为 mod(key, n+1) / mod(key, n-1),绝大多数数据的映射关系都会失效。(2)一致性哈希(Consistent Hashing)1997年,麻省理工学院(MIT)的 David Karger 等6个人发布学术论文《Consistent hashing...原创 2022-03-02 09:58:52 · 372 阅读 · 0 评论 -
数据结构——二叉树的遍历
一、二叉树的前序、中序、后序遍历的递归、非递归、迭代器版本(1)Tree.javapackage com.zx.tree;import java.util.Stack;public class Tree { private Node root; private Integer[] ans; private Integer size; private Integer cnt; public Tree(){ root = null; ans = null; siz原创 2022-02-27 12:52:00 · 609 阅读 · 0 评论 -
数据结构——红黑树简谈
一、基本概念R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。[注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。注意:因为(1.原创 2022-02-27 10:22:41 · 2916 阅读 · 1 评论 -
数据结构——B、B+树
一、B树二、B+树原创 2022-02-25 17:58:35 · 344 阅读 · 0 评论 -
数据结构——AC自动机
一、基本概念当我们遍历到 某个 节点的时候,由于存在这个节点,我们就让他的fail指针 指向 他父亲节点的fail指针指向的那个节点的具有相同字母的子节点。在trie上加入fail边,一个节点fail边指向这个节点所代表的前缀的最长后缀节点(除开自身的后缀)。简单来说,AC自动机是用来进行多模式匹配(单个主串,多个模式串)的高效算法。使用Aho-Corasick算法需要三步:建立模式串的Trie给Trie添加失败路径根据AC自动机,搜索待处理...原创 2022-02-25 17:06:08 · 785 阅读 · 0 评论 -
数据结构——字典树
一、基本概念Trie(字典树)是一种用于实现字符串快速检索的多叉树结构。Tire的每个节点都拥有若干个字符指针,若在插入或检索字符串时扫描到一个字符c,就沿着当前节点的c字符指针,走向该指针指向的节点。 初始化: 一棵空Trie仅包含一个根节点,该点的字符指针均指向空。 插入: 当需要插入一个字符串S时,我们令一个指针p起初指向根节点。然后,依次扫描S中的每个字符c: (1)若P的c字符指针指向一个已经存在的节点Q,则令P=Q。 (2)若P的c字符指针指向空,则新建...原创 2022-02-25 16:31:25 · 225 阅读 · 0 评论 -
常见排序算法
目录(1)插入排序(2)希尔排序(3)选择排序(4)堆排序(5)冒泡排序(6)快速排序(7)归并排序(8)计数排序(9)桶排序(10)基数排序(1)插入排序插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当...原创 2022-02-24 15:58:58 · 315 阅读 · 0 评论