跳表

什么是跳表?

跳表是一个相对于链表来说的高级动态数据结构。

在一个有序的链表当中,以一定的规则(比如说3个数字建立一个索引)建立索引,依次建立。最高的索引层只有2个索引。

时间复杂度是O(logn),十分高效。基本思想就是以空间换时间,建立索引。

在大规模软件开发中,这个额外的空间相对于数据的大小可以忽略。

 

如何插入?

插入跳表一个比较恶心的东西就是需要更新索引。

更新索引的方式是使用随机函数来维护平衡性。假设随机函数生成的值为k,那就把索引插入到第一层到第k层。随机函数的选择很有讲究,从概率上来讲,能够保证跳表的索引大小和数据带下平衡性,不至于性能过度退化。

 

补充

索引取区间,区间内遍历,空间换时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值