树_51CTO博客
线段是一种二叉搜索,与区间相似,它将一个区间划分成一些单元区间,每个单元区间对应线段中的一个叶结点。对于线段中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段是平衡二叉,最后的子节点数目为N,即整个线段区间的长度。使用线段可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而
原创 2015-10-06 20:35:11
636阅读
的定义(Tree)是N(N>=0)个结点的有限集。当N=0时成为空,在任意一棵非空树种:-有且仅有一个特定的成为根(Root)的结点。-当N>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2...Tm,其中每一个集合本身又是一棵,并且成为根的子树(SubTree)。虽然从概念上很容易理解,但是有两点还是需要大家注意下-n>0时,根结点是唯一的,坚决不可
原创 2023-02-03 08:01:28
118阅读
AVL 平衡最关心的是防止失衡,如果一个新的元素危机到的平衡,可以马上纠正。可以有局部重构(AVL方法) 或者重建整个(DSW)方法。AVL是自平衡二叉查找,在AVL中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡。增加和删除可能需要通过一次或多次旋转来重新平衡这个。平衡因子bf():右子树的高度-左子树的高度AVL 的平衡因子可以是 0,1,
原创 2022-08-26 15:00:19
89阅读
公告本文所述的各种数据结构(二叉等),均不考虑重复值的情况,本文简述各种数据结构的区别仅仅只是为了了解MySQL索引的需要而做的铺垫。什么是索引提起索引,大家都知道,建立索引可以让数据库查询更快,那么索引到底是什么?我想这就不是每个人都能说得出来了。
转载 2021-08-30 14:46:56
957阅读
参考字典(前缀)Trie(字典,前缀,键)分析详解Trie Tree 的实现 (适合初学者)https://leetcode-cn.com/problems/implement-trie-prefix-tree/solution/shi-xian-trie-qian-zhui-shu-b
原创 2021-05-30 10:57:11
1707阅读
1.Hash理想的情况是希望不经过任何比较,一次存取便能得到所查的记录, 那就必须在记的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和一个唯一的存储位置相对应。因而在查找时,只要根据这个对应关系f找到 给定值K的像f(K)。由此,不需要进行比较便可直接取得所查记录。在此,我们称这个对应关系为哈希(Hash)函数,按这个思想建立的表为哈希表。在哈希表中对于不同的关键字可能得到同一
原创 2015-12-06 16:32:47
10000+阅读
传送门 做法: dp 误区:不能直接只用 \(i\) 最大的两个儿子来更新 \(f[i]\),因为深度更大的儿孙中可能有更有的选择。 70分:每个点开一个堆,每次将未被选到的节点和自己的信息传递给父亲,对于 \(f[i]\),将子节点的节点信息索要到当前节点(将儿子的堆合并到此节点的堆上),取出最大 ...
转载 2021-10-27 20:26:00
155阅读
2评论
B即二叉搜索: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,
转载 2012-09-20 20:42:00
381阅读
2评论
B即二叉搜索: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:​​​​B的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左
转载 2012-06-16 20:04:00
218阅读
2评论
B       即二叉搜索:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入
转载 2014-05-09 01:57:00
189阅读
2评论
  前端不可不学的浏览器渲染机制,阿里年年问,去一个栽一个。听说百度也在考这
原创 精选 2022-08-23 10:55:03
792阅读
1 CART,又名分类回归CART,分类回归,是几乎所有复杂决策算法的基础,有以下特点:(1)CART是一棵二叉; (2)CART既能是分类,又能是回归,由目标任务决定; (3)当CART是分类时,采用GINI值作为结点分裂的依据;当CART是回归时,采用MSE(均方误差)作为结点分裂的依据;2 分类和回归的区别?针对分类任务,就是分类;针对回归任务,就是回归。分类任务:预
转载 2024-03-26 11:08:30
50阅读
选择 概念:假设有k个已经排序的序列,并且想要将其合并成一个单独的排序序列。每个排好序的序列叫走一个​​归并段​​。 暴力算法:假设总共有n个数字,每次取k个归并串最小或者最大的一个数,比较k-1次得到所有数中最大或者最小的,存入新空间中,接着一直这样比较...需要比较的次数是n*(k-1) 选择算法:可以构造完全二叉的数组表示法。初始状态如下:接着将上图最小的6放到新序列中,然后用15替
转载 2019-03-08 09:04:00
191阅读
2评论
什么是字典? 叫前缀更容易理解 字典的样子 Trie又被称为前缀、字典,所以当然是一棵。上面这棵Trie包含的字符串集合是{in, inn, int, tea, ten, to}。每个节点的编号是我们为了描述方便加上去的。比如上图中3号节点对应的路径0123上的字符串是inn,8号节点 ...
转载 2021-08-15 16:42:00
333阅读
2评论
胜者则是常见的归并完全二叉树形式。 题:给定一个数组array,长度为16。如何采用最少的比较次数找出第二大的元素? 1. 直观方法是通过两次冒泡排序,15+14=29 次比较可找到第二大的元素。然而直观方法显然没有应用到一些已经比较过的信息。 2. 采用归并排序,构造胜者。与该胜者比较过的元素有4个,只需要对这些元素进行比较即可,共比较次数15(胜者)+ (4-1)=18 次比较。
原创 2010-06-01 01:05:04
4888阅读
1点赞
本文主要介绍伸展的详细实现,但是由于本人才疏学浅,本来想完全实现伸展,后来由于查找操作未能顺利实现,暂时只介绍该数据结构ADT的核心-伸展,希望大家指导。
原创 2016-01-30 19:34:41
1134阅读
1.1、什么是Trie Trie,即字典,又称单词查找或键,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是最大限度地减少无谓的字符串比较,查询效率比较高。 Trie的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 它有3个基本性质: 根节点不包含字符,除根节点外每一个节点
转载 2017-12-06 11:19:00
225阅读
2评论
Trie:概述、基本性质、状态机、应用场景、面试题、实现、代码、缺点;Radix:概述、Redis实现版本、raxNode、操作(插入、删除、合并)
原创 7月前
137阅读
 
转载 精选 2010-11-20 10:01:10
2165阅读
B       即二叉搜索:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;     &
转载 精选 2015-03-28 22:36:35
857阅读
  • 1
  • 2
  • 3
  • 4
  • 5