基于天然概率的无需人为平衡的skiplist的美之展现

任何事情都无法阻挡我对一种简单之美的由衷惊叹。
半夜思索,无法入眠,索性起床看会书,关于中东文明的,可是又看不进去,也许是潮热的原因吧...还不如静下心来写一篇意识流文章,我指的是不用思考的那种,我已经被近东,中东的错综复杂的历史搞的有点烦了,那真是太难了。然而你能想象我指的那个不用思考的东西是一个算法吗?算法不都是很难的吗?真的就是一个算法,也可以说是一个数据结构,这就是skiplist。
       可以从网上找到大量深入分析skiplist的资料,包括分析其时间复杂度,空间占用情况的。但是本文不,因为我不想在一个如此美好的早上就消耗脑细胞,也不能说是早上,此时凌晨3点整!!注意,我是不需要怎么睡觉还能保持精力的那种怪人。
       那就开始了。
       说到查找,首先能想到的几乎就是各种查找树,当然,实际上在实用主义看来用得比较多的还是HASH,查找树可能学院派更加青睐一些吧。至于HASH,它可能受制于扩展性,需要不断的reHASH操作,然而对于动态节点,有一种一致性HASH可以参考,大量用于分布式环境,它完美解决了扩展性问题。当然它体现了另一种动态美,以后如果哪天早上又打鸡血了,会写一篇分析一下的。提到HASH的不易扩展性以及reHASH操作,查找树事实上是可以无限扩展的,但是在扩展过程中,会破坏树的平衡性,破坏了平衡性就会严重损耗查找树的查找性能,因此为了在扩展过程中保持平衡,需要一种人为的干预,这种干预就是所谓的“平衡”操作。
       不管对于AVL树,2-3-4树,还是衍生出来的红黑树,都是以上所述的这类查找树的典型。如果说有一种数据结构,在扩展过程中可以自然而然地保持平衡性,根本无需人为干预,那该有多好。
       我是一个基因决定论的信徒,相信任何的爆发或者陨灭都是由原始基本基因决定的,当然这是蝴蝶效应的一种体现。我天然反对健身房减肥,因为我相信瘦的人是基因决定的,怎么吃都不会胖,就好比掰手腕,很多人根本就没有练过,但是天然力气惊人,瞬间扳倒在健身房练了好几年的,这些人一旦离开了健身房,马上肌肉就变成了消失了,脂肪越来越多...这种在健身房练就一身肌肉的,就好像AVL树,红黑树,需要花费成本不断地进行平衡斧正,而对于那种天然基因决定的拥有完美曲线的人,就好比skiplist,快乐生活,自由成长。

skiplist简介

本文就不介绍了,不过当你baidu了之后,你几乎也就理解了skiplist的全部,也就无需再接着看下去了,因此更多的,本文属于我自己的记录随笔。

插入过程理解skiplist

下图展示了一个skiplist的插入构建过程:

skiplist查找示例

skiplist的美之展现

在画图的过程中,我发现不经意间所有的话都表达在图示里面了,无需更多的言语,这难道就是简单之美吗?

统计性能!统计性能!统计性能!统计性能!还是统计性能!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-07 06:33:03

基于天然概率的无需人为平衡的skiplist的美之展现的相关文章

Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw

负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesaw发布的博客中这样写道:“我们需要能够处理单播(unicast)和任播(anycast)虚拟 IP (VIPs) 流量,使用 NAT 和 DSR (也被称为 DR) 执行负载均衡,执行针对后端的健康检查.特别是,我们需要一个容易管理的平台,可以自动部署配置的变化.在评估了一些包括现有的开源项目的平台

基于优先级概率降速的最后期限可感知TCP 协议设计

DCTCP:利用显示拥赛通知(ECN)反馈机制来调整发送端的速率.使得交换机缓冲区队列长度一直维持在一个很小的长度.DCTCP帮助这些延迟敏感的流避免大的队列延迟,以至于成功获得低延迟.但是其是deadline-unware 协议.忽视了短流和背景流对不同截止时间的需求. D3:第一个截止时间知晓的传输控制协议.许多紧急的流到达的比较晚将会错过截止时间. D2TCP:根据流的紧急程度和网络拥塞状态调整滑动窗口的减少,这样来帮助紧急的流来不错过它的截止时间. PDQ:缩短了流的平均完成时间,对于截

语音识别概率问题,一段在数学之美了看到的话

如果 S 表示一连串特定顺序排列的词 w1, w2,…, wn ,换句话说,S 可以表示某一个由一连串特定顺序排练的词而组成的一个有意义的句子.现在,机器对语言的识别从某种角度来说,就是想知道 S 在文本中出现的可能性,也就是数学上所说的 S 的概率用 P(S) 来表示.利用条件概率的公式,S 这个序列出现的概率等于每一个词出现的概率相乘,于是 P(S) 可展开为:P(S) = P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)其中 P (w1) 表示第一个词

浅谈无需工作量证明的加密货币

浅谈无需工作量证明的加密货币 Iddo Bentov1,Ariel Gabizon2,Alex Mizrahi (Computer Science Dept., Technion; chromawallet.com) 译者:shylocks ([email protected]) 摘要:本文研究了那些并没有使用 PoW(工作量证明)协议的加密货币.这些协议通常采用 PoS(权益证明)协议,也就是采用了一种使担任验证工作的人获得在系统中相关权限的协议.我们对拥有较多矿工的系统进行了分析.最后,提出

bug统计分析续(一)基于SQL的Bug统计方法

上一篇为 bug统计分析初步 本篇重点讨论基于sql的bug统计分析方法. 1.与时间和状态的关系: 1)考察每个时间单位(年.月.日)产生的bug量 2)考察每个时间单位(年.月.日)解决的bug量 3)考察每个时间单位(年.月.日)遗留的bug量 4)考察每个bug遗留的时间单位(年.月.日) 5)考察平均bug遗留的时间单位(年.月.日) 6)通过结合1).2).3)考察分析发现.解决bug的时间段(月.日.时)峰值 其中6可以用来指导测试.开发效率 2.与时间.角色的关系: 1)考察每个

MariaDB基于MHA和Galera Cluster实现高可用

MySQL高可用 MMM:MySQL主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysqk replication进行监控和故障迁移,并能管理mysql master-master复制的配置(同一时间只有一个节点是可写的) MHA:对主节点进行监控,可实现自动故障转移至其他从节点,通过提升某一节点为新的主节点,基于主从复制实现,还需要客户端配合时间,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群汇总最少有三台数据库服务器,一主二从,即一太充当master,一台充

企业级负载平衡简介

在之前的一篇文章<放好你的密码 - 从芝麻金融被攻破说起>中,一位读者在评论中提出了“如果整个过程速度比较慢登陆会有问题”这样一条评论.虽然说我对文章的正确性很有把握,但也仍需要仔细思考是否自己哪里没有说清楚.在这个思考过程中,我想起了一个非常值得一说的话题,那就是负载平衡. 在那篇文章中我们说到,要安全地管理好密码,计算密码哈希所使用的迭代次数应该尽可能地大,从而使得单次哈希计算的速度变长,增加恶意人员破解密码的难度.反过来,如果有一百个人或者一千个人同时执行登陆操作,那么这么繁琐的哈希计算

基于bootstrap的图片轮播效果展示

<!DOCTYPE html><html lang="zh-CN"> <head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,

基于无线控制的智能家居技术探讨

谈到智能家居的无线控制方式,就不得不联想到与之相关的几大无线技术.目前,全球通用的无线技术主要包括红外.蓝牙.RFID.ZigBee.WIFI等.随着科技的不断发展,无线技术也进行着日新月异的改进.基于其灵活性.无需布线等优点,在市场上也得到相当广泛应用.智能家居产品的出现,更是为无线技术开辟了另一方新的应用空间.相比较传统智能家居系统采用的有线布网方式,无线技术的应用则可以减少布线带来的麻烦,具有更好的可扩展性.移动性.因此采用无线智能控制模式是智能家居发展的必然选择.下面小编就和大家共同探讨