前言 在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引)。本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明MySQL为什么选择B+树作为索引结构。 一、二叉查找树(BST):不平衡 二叉查找树(BST,Bin ...
分类:
数据库 时间:
2020-06-22 17:15:52
阅读次数:
83
我觉得有一个能够找一份大厂的 offer的想法,这是很正常的,这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司 / 小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的。
分类:
其他好文 时间:
2020-06-18 10:42:48
阅读次数:
110
class BSTMapNode(object): def __init__(self, key, value): self.key = key self.value = value self.left = None self.right = None # 以列表作为底层存储 class BSTMa ...
分类:
编程语言 时间:
2020-06-12 12:58:33
阅读次数:
69
二叉查找树: B+树: B+树插入操作情况 最下一层叶子节点也是双向链表: 旋转亦可:B+树主要作用于磁盘,拆分页意味着磁盘操作,很耗性能,先旋转可减少磁盘操作, 删除: ...
分类:
其他好文 时间:
2020-06-09 20:48:06
阅读次数:
48
1 二叉树 二叉树的每个节点都包含一个项用来存储数据,以及两个指向其他子节点的指针用来链接结构;是一种二分查找的树形结构; 当数据按顺序排列时,使用二叉树从中间的节点开始查找,每次都能排除一半的数据量,效率较高;只是编程较为复杂。 不过当二叉树子树的排列不平衡时,查找效率挺低的;可能还不如链表实用; ...
分类:
其他好文 时间:
2020-06-09 20:45:55
阅读次数:
64
问题描述: 给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。 问题解析: 根据示例: 可得两个圆之间的距离计算为:sqrt((r1+r3)2-(r1-r3)2),即 2*sqrt(r1*r3) 由于当前的圆不一定恰好与它前面的圆相切,故我们可以通过计算当前圆 ...
分类:
其他好文 时间:
2020-06-05 13:04:34
阅读次数:
161
定义 二叉查找树:即BST,也叫二叉搜索树,二叉排序树,在二叉树的基础上,它拥有如下性质,每个节点的值都大于其左子树中的任意节点的值,而小于右子树的任意节点 图例 数据结构 节点数据结构如下 private class Node { private Value value; //该节点的值 priv ...
分类:
其他好文 时间:
2020-06-04 21:19:21
阅读次数:
54
定义:二叉排序树或者是一棵空树,或者是具有如下性质的二叉树: 1.若它的左子树非空,则左子树上所有结点的值均小于它的根结点的值; 2.若它的右子树非空,则右子树上所有结点的值均大于二叉排序树(二叉查找树) 3.若它的右子树非空,则右子树上所有结点的值均大于(或大于等于)它的根结点的值;它的左、右子树 ...
分类:
其他好文 时间:
2020-06-04 10:37:20
阅读次数:
70
二叉排序树(二叉查找树):二叉排序树或者是一棵空树,或者是具有如下性质的二叉树。若它的左子树非空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树非空,则右子树上所有结点的值均大于(或大于等于)它的根结点的值;它的左、右子树也分别为二叉排序树。平均查找长度(ASL):若查找成功,则是从根结点 ...
分类:
其他好文 时间:
2020-06-03 16:03:17
阅读次数:
52
##二叉排序树 什么是二叉排序树?二叉排序树又称二叉查找树 二叉排序树(Binary Sort Tree)或者是一棵空树;或者是具有下列性质的二叉树;(1)若它的左子树不空,则左子树上所有节点的值均小于它的根结点的值;(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)它的左、 ...
分类:
编程语言 时间:
2020-06-02 18:44:31
阅读次数:
107