二叉树的算法时间复杂度 二叉搜索树,平衡二叉树,红黑树的算法效率操作二叉查找树平衡二叉树红黑树查找O(n)O(logn)Olog(n)插入O(n)O(logn)Olog(n)删除O(n)O(logn)Olog(n)Olog(n)怎么算出来的在一个树中查找一个数字,第一次在根节点判断,第二次在第二层节点...
关于红黑树旋转的理解 概述红黑树的左旋和右旋比较费解,网上很多资料说的很复杂,这里我用望文生义的思维来解释左旋和右旋。可能对搜索资料的网友有帮助。二叉查找树的定义二叉查找树是一棵空树,或者是具有下列性质的二叉树:1、若左子树不空,则左子树上所有节点的值均小于它的根节点的值;2、若右子树不空,则右子树上所有节点的值均大于它的根节点的值;3、左、右子树也分别为二叉排序树;4、没有键值相等的节点。红...
拉链法的理解 原理把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。用途主要用于解决key值冲突的问题场景HashMap就用了拉链法 HashMap的key是转化成了hash...
PriorityBlockingQueue深度解析(好文) 本文引自:https://www.cnblogs.com/Elliott-Su-Faith-change-our-life/p/7472265.htmlJava中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对Priorit...
深入CAS原理 JDK中所有的CAS到最后都要用到这个方法:public final native boolean compareAndSwapObject(Object var1, long var2, Object var4, Object var5);这个方法有4个参数,奇怪的是序号不是1234,而是1245,没有javadoc和任何注释,是个native方法,代码实现是用C++写...
common-lang3工具类-使用手册 apache的common包列表BeanUtilsCommons-BeanUtils 提供对 Java 反射和自省API的包装BetwixtBetwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务.ChainChain 提供实现组织复杂的处理流程的“责任链模式”.CLICLI 提供针对命令行参数,选项,选项组,强制选项等的简单API.C...
gitlab搭建 概述gitlab是完全私有的git项目,github是公共的git项目。服务器环境centos6部署命令yum install curl policycoreutils-python openssh-server yum -y install postfixsystemctl start postfixsystemctl enable postfixsys...
RestTemplate转码bug 发现一个关于HTTP的Get请求的罕见bug。转码问题的背景需要向tigergraph服务端发送一个复杂的get请求,参数只有一个,但是参数的值是一个复杂json服务端收到的值始终是不正常的值。观察发现,不正常地方在于服务端本应解析为空格的地方都变成了加号(+)。以为是代码写得有问题,然后使用HTTPclient的原生的方式发起请求:public stati...
论tigergraph边的方向性 tiger边分类tiger的边分为有向边,无向边。有向边和无相边的区别是:界面上有向边有明显箭头,无向边就是直线。注意: 有向边又有单向边,双向边。无向边由于指定了边的起点类型和终点类型,而任何顶点的类型只能有一个,无所无向边其实还是有方向的。只有起点和终点类型都是*的时候,才是真正的无向边。单向边无法反向遍历。无相边和双向边都可以反向遍历。无...
关于java的wait方法的深入分析 本文出自: https://blog.csdn.net/qq_26222859/article/details/53930941wait() 的jvm实现先查看jdk\src\shareative\java\lang\Object.c#include <stdio.h>#include <signal.h>#include ...
什么是发展空间? IT人: 问下你自己,当你有一天做技术开发的职业做累了,做烦了。 问问自己: 什么才是发展空间? 什么才是技术?转载于:https://www.cnblogs.com/geektcp/p/11470697.html...
一个奇怪的urlencode转码问题 问题现象问题源自于使用tiger进行图查询时,要用到一个get请求,参数是复杂的json字符串,含有空格,逻辑运算符等若干字符。当服务器端接收时,总是无法正常解析。神奇的是使用httpclient原生的方式没有这个问题,使用postman也没问题。但是使用spring的restTemplate就偏偏有这问题。反复调试也没有完全搞清楚。困扰了两三天。具体问题下...
iphone的抹除流程 手机丢失后,开启抹除模式,如果成功抹掉,会有如下截图。这时,手机的操作系统会重置,里面照片,备忘录,通讯录什么的都没了。有点像刚买的时候的初始状态,不同的是,设置好语言,连接好wifi后,多了一步:必须先输入apple id和密码,验证通过后,才能登录新的apple id和密码。否则永远无法进入下一步。转载于:https://www.cnblogs...
openjdk的源码下载方式 官方地址是:http://hg.openjdk.java.net/jdk8的下载地址:http://hg.openjdk.java.net/jdk8/jdk8/hotspot/点击zip即可开始下载,实际下载地址(以jdk8为例):http://hg.openjdk.java.net/jdk8/jdk8/hotspot/archive/tip.zip...
关于iphone的双重验证的虚伪本质 双重验证就是鸡肋如果手机丢了,双重验证时如果绑定的手机号正是丢失手机对应的手机号,那么就会阻碍你抹除数据。因为双重验证必须要iphone手机上的验证码或者手机短信的验证码或者是其他苹果手机设备(不能是iphone设备,可以是ipad,mac设备上的appleid账号),这个策略不支持邮箱验证。当手机丢失后,如果你要立即抹除数据,防止数据泄漏时,你会发现原来苹果...
新买的iphone如何保证安全 事件背景最近丢了一个iphone7plus,非常遗憾,是坐滴滴网约车时忘车上了,虽然知道大概是后面上车的乘客捡到的,但是滴滴客服联系对方,对方死都不肯承认。己所不欲,勿施于人。下面我来分享一下这次的心路历程。由于调查成本高,金额不算特别高,不会立案,找警察也没有用。鉴于这次教训,我第二天上午就补卡了,由于开启了二重验证,绑定的手机是我丢失手机上的卡号,抹除设置只能补...
tigergraph图计算 tigergraph是什么它是一个目前业界最先进的图数据库。系统完全闭源。部分查询算法开源。分为开发版和企业版。开发版免费,但功能受限,比如单点,只能构建一个图企业面收费,支持大规模集群,顶点表数量不受限制。tigergraph系统架构术语顶点,边的概念是一致的。也是json形式存放数据。概念解释:DDL: 数据定义语言(通用概念)DML:数...
构建一颗普通树 场景:权限管理资源分级别:一级资源(部门管理,项目管理)二级资源(列表,详情,编辑,删除,增加)三级资源(过滤条件,展示范围,深度)也可能有更多级别的资源,现在需要构建一个普通树来存放。node类package com.haizhi.gap.sys.auth.model.vo;import com.haizhi.gap.sys.auth....
注解大全 开始逐个累积所有spring和非spring的各种注解。序号:1注解:@Component作用:表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。说明:Controll,Service,Reponsitory和Componet效果都完全一样,只是...
高并发编程thirft源码解析之Selector Selector作用关于套接字编程,有一套经典的IO模型需要提前介绍一下:.同步IO模型:阻塞式IO模型非阻塞式IO模型IO复用模型 使用selector信号驱动式IO模型异步IO模型使用aio_readthrift里面用到IO模型就是IO复用模型,《Unix网络编程》一书中说它是同步IO模型,selector用法是阻塞的。实际上s...