一、算法原理二叉排序树(BinarySortTree或BinarySearchTree)又称二叉查找树,可以用来实现数据的快速查找,也方便数据的插入、删除等工作,因此适用于数据的动态查找。二叉排序树是一棵二叉树,其左子树上的元素都小于树根,右子树上的元素都大于树根,所有的子树也满足这个性质。要想实现二叉排序树的查找,需要事先已经建立了二叉排序树。其原理很简单,如果已知一个数组,则首先把数组的第一个元素存储到树根。读入第二个元素的时候需要和树根进行比较,比树根小则存到左子树,否则存到右子树。读入第三个元素时,依旧先和树根进行比较,如果大于树根元素,则存入右子树,否则就与当前左子树树根进行比较,小
TCP四次挥手过程客户端发起fin位为1的FIN报文,此时客户端进入FIN_WAIT_1状态服务端接受到FIN报文后,发送ack应答报文,此时服务端进入close_wait状态客户端接受到ack应答报文后,进入FIN_WAIT_2状态服务端处理完数据后,向客户端发送FIN报文,此时服务端进入LAST_ACK状态客户端接受到FIN报文后,客户端发送应答ack报文,进入TIME_WAIT阶段服务端接受到ack报文后,断开连接,处于close状态客户端过一段时间后,也就是2MSL后,进入close状态主动关闭连接的,才有TIME_WAIT状态为什么挥手需要四次?由于TCP的半关闭(half-clos
作为程序员,网路问题经常遇到,熟悉抓包工具,会使我们排查网络问题时候,事半功倍!由于抓包我们经常还会查看设备以及端口的一些信息,所以我们先介绍下netstat工具netstat工具简介和使用netstat是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、网络连接以及每一个网络接口设备的状态信息。netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。参数解释shell-a:(all)显示所有活动中的网络连接和机器正在监听的TCP/UDP端口-r:(route): 显示路由表-n: 以数字方式显示,禁用反向域名解析,加快查询速度
背景今天无意中打开git官网,发现git命令还是很多的,然而我们常用的就那几个,今天来学习一个也不怎么常用的命令rebase官网链接都说学一个东西最好的方式就是读他的官方文档,这里我读了一遍,把一些核心的地方整理成这篇blog为什么要出现gitrebase首先可以看到,rebase是属于Patching这一类下面的,也就是补丁我们平常协同开发基本上都是基于master自己拉一个分支,然后发布的时候把各自的分支合并到master进行发布,这样做有一些的缺陷:当你merge了一个比较大的改动,时间线拖得比较长,这时候你merge到master后,看master的提交记录,会有很多别人的提交记录和你
假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql:代码如下select*fromproductwhereadd_time=‘2013-01-12’对于这种语句,如果你存储的格式是YY-mm-dd是这样的,那么OK,如果你存储的格式是:2013-01-1223:23:56这种格式你就悲剧了,这是你就可以使用DATE()函数用来返回日期的部分,所以这条sql应该如下处理:代码如下select*fromproductwhereDate(add_time)=‘2013-01-12’再来一个,如果你要查询2013年1月份加入的产品呢?代码如下sel
目录一、相关导读1.Maven系列专栏文章2.Mybatis系列专栏文章3.Spring系列专栏文章二、前言Spring简介Spring体系结构三、Spring实现IOC1.创建Maven工程,引入对应依赖2.创建实体类,Dao接口及实现类3.编写xml配置文件4.测试从Spring容器获取对象5.测试结果四、Spring容器类型1.容器接口2.ApplicationContext容器实现类3.测试从磁盘读取配置文件4.测试结果一、相关导读 大家如果对于本期内容有什么不了解的话也可以去看看往期的内容,下面列出了博主往期精心制作的Maven,Mybatis等专栏系列文章,走过路过不
冒泡法排序:顾名思义,小的数据就好像水中的气泡一样总是逐渐往上升,大的数据就像石块一样往下沉,因此称为冒泡法排序法。假如有n个数字,则需要进行n-1轮 第一轮结果:最大的数,被放在了最后一位 第二轮:元素‘8’已经拍好了顺序,所以只用将前4个元素进行排序 第三轮:只用将前3个元素排序即可 第四轮:只用将前2个元素比较即可 第五轮:只剩下一个元素,直接放在首位,它一定是最小的 以上就是冒泡排序的步骤代码如下:/*冒泡法排序:字面意思为小的数据就好像水中的气泡一样总是逐渐往上升,大的数据就像石块一样往下沉,因此称为冒泡法排序法。第一轮从a[0]到a[5]依次把两个相邻的元素两两比较;每次比较后,
MongoDB中四种连接方式的比较详解目录StandaloneReplicaSetShardedClusterAtlasDeploymentStandalone1.定义Standalone是MongoDB中最简单的连接方式,表示单个独立的MongoDB服务器实例。2.原理Standalone模式下,只有一个MongoDB服务器实例,数据存储在单个节点上,没有复制或分片。它适用于开发和测试环境,以及小型应用程序。3.适用场景单个开发者或小团队的开发和测试环境。小型应用程序,数据量较小。4.示例代码constMongoClient=require('mongodb').MongoClient;co
2021版本URP项目下的相机,一般新建一个相机有如下组件1:RenderType(渲染类型)有Base和Overlay两种选项,默认是Base选项 Base:主相机使用该种渲染方式,负责渲染场景中的主要图形元素 Overlay(叠加):使用了Oveylay的相机会把它渲染出的图形叠加到其他相机之上,使用方法是在主摄像机的Stack部分添加该相机,如下图2:Projection(投影方式)把三维场景投影到二维屏幕上的过程,有Perspective和Orthoraphic两种方式 Perspective(透视投影):远小近大的效果,可以通过调节FieldofView来调节视野大
K8S证书介绍在Kube-apiserver中提供了很多认证方式,其中最常用的就是TLS认证,当然也有BootstrapToken,BasicAuth认证等,只要有一个认证通过,那么Kube-apiserver即认为认证通过。下面就主要讲解TLS认证。如果你是使用kubeadm安装的Kubernetes,则会自动生成集群所需的证书。但是如果是通过二进制搭建,所有的证书是需要自己生成的,这里我们说说集群必需的证书。在了解Kubernetes证书之前,需要先了解什么是“单向TLS认证”和“双向TLS认证”服务器单向认证:只需要服务器端提供证书,客户端通过服务器端证书验证服务的身份,但服务器并不验证