数据结构之B+树

:00 tags: 数据结构与算法之美 一、 浅谈B-树索引 1.B-树的特性 一棵m阶B-树,或者是空树,或者是满足以下性质的m叉树 解释: m阶的意思是这颗树最多的分支是多少,每个节点可以包含很多关键字,范围是[[m/2]-1,m-1],比如m为 3,就说明是3阶的B-树, 那么它的树的节点的关键字最少2,最多4个。下面的B+树也是同样的理解。 2.B-树索引结构图 3.B-树查找代价分析 设关键...

JavaScript 系列博客(一)

)标签,会屏蔽掉标签内部的 js 代码块;在 js 的任意地方,均有 this对象,this 对象不指向任何标签时,指向的是 window 对象。 在 js 中定义变量四种定义变量的方式语法: 关键词 变量名 = 变量值 num = 10; // 省略关键词, 定义的为全局变量, 在任何位置定义, 在任何位置都可以访问, 但不建议使用var num = 10; // var关键词, 无块级作用...

前端与编译原理——用JS写一个JS解释器

在这篇文章中,我们不会搞出机器码这样复杂的东西,仅仅是使用JS在其runtime环境下去解释JS代码的AST。由于解释器使用JS编写,所以我们可以大胆使用JS自身的语言特性,比如this绑定、new关键字等等,完全不需要对它们进行额外处理,也因此让JS解释器的实现变得非常简单。在回顾了编译原理的基本概念之后,我们就可以着手进行开发了。四、节点遍历器通过分析上文的AST,可以看到每一个节点都会有...

【模板】平衡树——Treap和Splay

$并使左右子树的$size$保持平衡($SBT$)等。本文主要给出$Treap$和$Splay$的实现方法。 $Treap$:顾名思义,该数据结构是$Tree$与$Heap$的结合体。思想:在第一关键字满足$BST$性质的同时,为每个节点随机生成一个第二关键字,并通过旋转使得第二关键字满足堆性质。旋转(网上讲的很清楚了a QAQ):分为左右旋两种,如图(图源网络w): 例如:(图源网络,图中点内...

JavaScript 对象继承方式

一、对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因为构造函数只是一个函数,所以可使 Parent 构造函数 成为 Children 的方法,然后调用它。Children 就会收到 Parent 的构造函数中定义的属性和方法。例如,用下面的方式定义 Parent 和 Children: ]// 父类构造函数 var Parent = funct...

并发编程的实现原理-volatile-笔记

JMM怎么解决原子性、可见性、有序性的问题? 在Java中提供了一系列和并发处理相关的关键字, 比如volatile、Synchronized、final、juc(java.util.concurrent)等, 这些就是Java内存模型封装了底层的实现后提供给开发人员使用的关键字, 在开发多线程代码的时候,我们可以直接使用synchronized等关键词来控制并发, 使得我们不需要关心底层的编译器优化...

孟岩对话元道:通证经济将在两个方向上闯出新路

实价值的支撑,却被非理性的追捧?正是在思考这些问题的过程中,我们重视到通证作为激励的作用。孟:确实如此。当时我在跟一些企业沟通的时候,他们一方面站在“上帝视角”,认同区块链这样一个“共享业务数据、共享关键交易流程”的基础设施可以大幅度降低摩擦,极大的促进行业的健康发展,并给最终用户带来巨大的价值,但另一方面,当他们回到自己的立场上,就会对于采纳这项技术顾虑重重,他们说,我为什么要把自己的数据跟其他人共...

Scala实战专栏 (四) ——— 类和属性

,age_$eq(int age) ----- setter方法4.2 控制构造函数字段的可见性(var/val/private) Scala中构造函数参数可见性,使用var/val/private关键字修饰所控制。可通过下列口诀记住: 如果一个字段被声明为var,Scala会为该字段生成getter和setter方法 如果字段是val,Scala只会生成getter方法 如果一个字段没有var或v...

Python并发编程系列之协程

nt_loop事件循环:程序开启一个无限的循环,程序员会把一些函数(协程)注册到事件循环上。当满足事件发生的时候,调用相应的协程函数。2)coroutine 协程:协程对象,指一个使用async关键字定义的函数,它的调用不会立即执行函数,而是会返回一个协程对象。协程对象需要注册到事件循环,由事件循环调用。3)future 对象: 代表将来执行或没有执行的任务的结果。它和task上没有本质的...

Java 多线程面试题及答案

r可重用,CountDownLatch不可重用,计数值为0该CountDownLatch就不可再用了。   一个非常重要的问题,是每个学习、应用多线程的Java程序员都必须掌握的。理解volatile关键字的作用的前提是要理解Java内存模型,这里就不讲Java内存模型了,可以参见第31点,volatile关键字的作用主要有两个: 1)多线程主要围绕可见性和原子性两个特性而展开,使用volatile关...
关于我们 联系我们 友情链接 LMLPHP后院 
本站由 LMLPHP 强力驱动 ©2014-2019 LMLPHP 耗时0.054979(s)
2019-12-11 16:14:09 1576052049