数据结构
草帽boy7
/ynmianyan/10927062
展开
-
KMP 算法 笔记
KMP 包含一个PMT表。我们把 待匹配的文字称为 模式字符串.前缀 : “aba” 前缀为 除去 最后一个 字符 “a” 所 形成 的集合。 {“a”,“ab”}后缀 : “aba” 后缀 为 除去 最前的一个字符串 “a” 所形成的集合 {“a”,“ba”}它们 之间的 交集为 {“a”} ,长度为 1,那么 在 PMT表 中 a 对应 1.模式字符串 issip 在 某一个 地方 出现 不匹配,那么 至少 在 前 j -1 个字符是匹配的.如果 是普通的 做法,如果我们 碰到 不匹配原创 2020-07-01 16:32:13 · 231 阅读 · 0 评论 -
数据结构之树从入门到如土(四)----如何看待本文教你会十分钟学会手写一个红黑树
红黑树的历史红黑树(英语:Red–black tree)是一种不平衡二叉查找树,无需保证左右子树高度差小于等于1。是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它在1972年由鲁道夫·贝尔发明,被称为"对称二叉B树",它现代的名字源于Leo J.Guibas和RobertSedgewick于1978年写的一篇论文。红黑树的结构复杂,但它的操作有着良好的最坏情况运行时间,...原创 2020-04-07 20:37:59 · 527 阅读 · 0 评论 -
数据结构之树从入门到如土(二)----带你从头碾压 一颗AVL树(多图)
AVL树 解决了二叉树的什么问题?AVL 和 二叉树的 最大区别是能自平衡,简单的说就是多了一步插入的时候会按照插入的值做 自平衡 防止 插入 向 1 ,3 ,4, 6, 8, 9 这样 左边的值 比右边小 就会变成 链表了。AVL树的定义:AVL树是二叉树,其各个节点的左右子树的高度相差不超过1。AVL树是最早提出的自平衡二叉树,在AVL树中任何节点的两个子树的高度最大差别为一,所...原创 2020-03-26 13:11:25 · 318 阅读 · 0 评论 -
Trie树魔改 实现千万数据 秒级排序
Trie 树的优点 是 查找 摘要O(len)的 复杂度 ,本质上也是一颗树的结构。花了 一天时间,在自己上一篇文章的原基础上实现了一个Trie 能排序的算法,发现性能还不错,读取一个 大概一个1个亿的数据,耗时 23秒左右完成排序。内存占用情况:因为 是从 500多KB复制黏贴出来的所以,重复的比较多...原创 2020-03-21 20:06:07 · 270 阅读 · 0 评论 -
数据结构之树从入门到如土(三)----字典树 前缀树(TrieTree) Go 实现
字典树的简介又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应...原创 2020-03-17 21:07:38 · 354 阅读 · 0 评论 -
基于 堆二叉树 实现 优先队列
二叉堆(满足一些特殊性质的二叉树)二叉堆是一颗完全二叉树满二叉树:节点是固定的(第一层 1个 第二层2个 第三层 4个。。。) 每个非叶子节点都有2个孩子。 18 / \ 15 30 / \ / \ 40 50 100 40 完全二叉树:从根结点到倒数第二层满足完...原创 2019-10-11 15:20:30 · 193 阅读 · 0 评论 -
二分树
满二叉树:除了叶子节点 其他所有节点的左右子孩子都不为空。LinkedListSetBSTSet增 addO(n)O(h)查 containsO(n)O(h)删 removeO(n)O(h)原创 2019-10-10 15:56:13 · 424 阅读 · 0 评论 -
映射Map
映射Map存储(键,值) 数据对的数据结构(key,value)根据键(Key),寻找值(Value)非常容易使用链表或者二分搜索树实现//二分搜索树class Node{ E e; Node left; Noder right;}//链表class Node{ E e; Node next;}基于Map//二分搜索树class Node{ K key; ...原创 2019-10-10 18:29:37 · 103 阅读 · 0 评论 -
Tire(字典树)
什么是Trie专门处理字符串字典:如果有n的条目 使用树结构 查询的时间复杂度是O(logn)如果有100万个条目 logn大约为20Trie查询条目的时间复杂度 和字典中一共有多少条目无关!时间复杂度O(W) w:查询单词的长度 优势:大多数单词长度小于10Tire 通过Map 映射 找到 下一个 节点 比如 pan 会先找 给定p 找到 所有的下一个节点 在在所有的节点...原创 2019-10-13 11:44:12 · 135 阅读 · 0 评论 -
并查集
并查集子节点纸箱父节点判断网络中连接的状态网络是个抽象概念:用户之间形成的网络(好友之间,音乐之间,图书之间,路由器之间,交通网络)public interface UF { int getSize() ; //查看2个元素是否相连的 boolean isConnected (int p,int q); //将2个元素放在一起 void un...原创 2019-10-15 19:24:02 · 79 阅读 · 0 评论 -
数据结构---平衡二叉树(AVL)
AVL树 取自 G.M.Adelson-Velsky 和E.M.Landis1962年的论文首次提出满二叉树:除了叶子节点其他酒店都有左孩子和右孩子。完全二叉树:所有叶子节点最多相差一层。定义:对于任意一个节点,左子树和柚子树的高度差不能超过1如上图12 节点 的左子树 8、 5、 4高度为312 的左子树 18和 17 高度为2 相差不超过18的左子树 5 和 4 高度...原创 2019-11-15 18:37:40 · 360 阅读 · 0 评论