从B 树、B+ 树、B* 树谈到R 树
作者:July、weedge、Frankie。编程艺术室出品。
说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。
出处:http://blog.csdn.net/v_JULY_v 。
第一节、B树、B+树、B*树
1.前言:
动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree
继续阅读 »
算法原理
先上一张堆排序动画演示图片:
1. 不得不说说二叉树
要了解堆首先得了解一下二叉树,在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
二叉树的每个结点至多只有二棵子树(不存在度大于 2 的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第 i 层至多有 2i - 1 个结点;深度为 k 的二叉树至多有 2k - 1 个结点;对任何一棵二叉树 T,如果其终端结点数为 n0,度为 2 的结点数为 n2,则n0 = n2 + 1。
树和二叉树的三个主要差别:
- 树的结
继续阅读 »
zTree -- jQuery 树插件
zTree 简介
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
zTree的简单使用过程
1、首先是导入 zTree的相关js库和css
继续阅读 »
赶到某浏览器公司第一件事就是做一套笔试题,笔试题有三题,这里说说第一题
第一题是二叉树非递归层次遍历
用队列实现,代码如下:
static void levelorder(Node p) {
if (p == null) return;
Queue queue = new LinkedList();
queue.offer(p);
while (queue.size() > 0) {
Node temp = queue.poll();
visit(temp);
if (temp.getLeft() != null) {
queu
继续阅读 »
Mysql索引 - B树/B+树
介绍
B树/B+树介绍
B树
B+树
索引介绍
MylSAM 索引
InnoDB 索引
继续阅读 »
组合模式
组合模式将对象组合成树形结构,以表示“部分-整体”的层次结构。除了用来表示树形结构之外,组合模式的另一个好处是通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性。
请求在树中传递的过程
在组合模式中,请求在树中传递的过程总是遵循一种逻辑。
请求从树的最顶端的对象往下传递,如果当前处理请求的对象是叶对象,叶对象自身会对请求做相互相应的处理;如果当前处理请求对象是组合对象,组合对象则会遍历它下面的节点,将请求继续传递。
总之,组合对象的请求是从上到下沿着树传递,直到树的尽头。作为客户,只要关心树最顶层的组合对象,客户只需要请求这个组合对象,请求便会向下延续。
现在,假设一个需求,我们需要一个超级
继续阅读 »
生成二叉树
type Node struct {
data string
left *Node
right *Node
}
nodeG := Node{data: "g", left: nil, right: nil}
nodeF := Node{data: "f", left: &nodeG, right: nil}
nodeE := Node{data: "e", left: nil, right: nil}
nodeD := Node{data: "d", left: &nodeE, right: nil}
nodeC := Node{data: "c", left: nil, right:
继续阅读 »
测试位置:WikiOI1078
type
TEdge = record
start, terminal: longint;
weight: int64;
end;
TEdgeArr = array of TEdge;
operator (e1, e2: TEdge)res: Boolean;
begin
res := e1.weight > e2.weight;
end;
procedure SortEdge(A: TEdgeArr; l, r: longint);
var
i, j: longint;
t, m: TEdge;
begin
继续阅读 »
从今天起至10月11日,持续连载。
关于计算机
ENIAC
出现于1946年。
是最早的计算机。
是电子管计算机。
其他
阶码,即浮点数的指数部分。
IPv6是128位的。
求补码:二进制下:各位取反再加1 或 把原码减1再取反。
关于算法
各种排序的时间复杂度
快速排序:$O(nlogn)$,最坏为$O(n^2)$。
冒泡排序:$O(n^2)$。
归并排序:$O(nlogn)$。
计数排序:$O(n)$。
插入排序:$O(n^2)$。
关于树
完全二叉树 vs 满二叉树:完全二叉树最后一层不一定满。
前序遍历:中左右;中序遍历:左中右;后序遍历:左右中。
节点数
继续阅读 »
前段时间在朴灵的github中,看到了一张出自拔赤之手的前端工程师技能树,有感原来前端的技能树如此的丰富,而自己所知所会的竟然如此之少,实在是大开眼界。遂保存起来希望以后能慢慢的点满前端技能树。
继续阅读 »