数组、链表、跳表

实际上就是计算机给你开辟一段连续的地址,因此访问每一个元素的时间(复杂度)是一样的

但进行删除或者插入的时候,复杂度就会编程O(n)

linked list 弥补数组的缺点

 linked list新增节点

 但查询任意节点就只能从头或者尾部进行逐一挪动

skip list

考虑链表随机查询如何提高速度:  (升维)

1.增加索引  (每个索引 next+1)

 

 跳表查询任意数据的时间复杂度就是O(logn)

推荐几片文章:

LRU cache - linked list
LRU缓存算法 - 简书一、什么是缓存 这里说的缓存是一种广义的概念,在计算机存储层次结构中,低一层的存储器都可以看做是高一层的缓存。比如Cache是内存的缓存,内存是硬盘的缓存,硬盘是网络的缓存等...https://www.jianshu.com/p/b1ab4a170c3c

 力扣https://leetcode-cn.com/problems/lru-cache/

Redis - Skip list 

跳跃表 — Redis 设计与实现https://redisbook.readthedocs.io/en/latest/internal-datastruct/skiplist.html


为啥 redis 使用跳表(skiplist)而不是使用 red-black? - 知乎当数据元素个数少于某值,redis会使用l跳表来存储元素,而不使用hash。如果把跳表换成红黑树,redis的性…https://www.zhihu.com/question/20202931

实战: 移动零;

力扣https://leetcode-cn.com/problems/move-zeroes/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值