首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/p/zoxide

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

每日一博 | 跳跃表数据结构与算法分析

作者:京东物流 纪卓志 目前市面上充斥着大量关于跳跃表结构与Redis的源码解析,但是经过长期观察后发现大都只是在停留在代码的表面,而没有系统性地介绍跳跃表的由来以及各种常量的由来。作为一种概率数据结构,理解各种常量的由来可以更好地进行变化并应用到高性能功能开发中。本文没有重复地以对现有优秀实现进行代码分析,而是通过对跳跃表进行了系统性地介绍与形式化分析,并给出了在特定场景下的跳跃表扩展方式,方便读者更好地理解跳跃表数据结构。 跳跃表[1,2,3]是一种用于在大多数应用程序中取代平衡树的概率数据结构。跳跃表拥有与平衡树相同的期望时间上界,并且更简单、更快、是用更少的空间。在查找与列表的线性操作上,比平衡树更快,并且更简单。 概率平衡也可以被用在基于树的数据结构[4]上,例如树堆(Treap)。与平衡二叉树相同,跳跃表也实现了以下两种操作 通过搜索引用[5],可以保证从任意元素开始,搜索到在列表中间隔为k的元素的任意期望时间是O(logk) 实现线性表的常规操作(例如_将元素插入到列表第k个元素后面_) 这几种操作在平衡树中也可以实现,但是在跳跃表中实现起来更简单而且非常的快,并且通常情...

Chrome 将允许按网站启用/禁用浏览器扩展

目前,Chrome 仅允许用户通过浏览器的设置在所有网站上禁用或启用某个扩展程序,而不能控制基于特定网站的扩展程序。不过据 Reddit 网友 Leopeva64-2 近日的发现,Google 将会在 Chrome 的后续更新中,给予用户在每个网站上启用或禁用扩展程序的选择权。 在 Reddit 上,Leopeva64-2 表示: Google 正在重新设计扩展菜单(包括子页面),显然新选项之一将是一个切换按钮,允许你快速阻止/启用当前网站上的所有扩展。 下面的 GIF 图显示了该功能的使用方式: 这个功能跟微软 Edge 在去年 4 月推出的 "暂停这个网站的扩展" 选项功能十分类似(如下图)。 在 Edge 中,当你选择暂停扩展功能后,网站会自动重新加载。可能是 Chrome 的这个功能还处于早期开发中,目前在 Chrome 中虽然可以启用/禁用扩展,但该按钮实际上并没有任何作用。 通过查看 Chromium 的代码变更也能看到(下图紫色部分),代码中增加了「在该网站启用/禁用所有扩展」的变更。 对于 Web 开发者来说,这个功能可以让他们快速切换一些用于测试的扩展,方便他们调试代...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册