块状链表基本操作及相关例题

块状链表结合了数组和链表的优点,适用于文本编辑器的定位、插入和删除操作。文章介绍了块状链表的基本操作,如定位、分裂、合并、插入和删除,并分析了效率。通过NOI2003的文本编辑器问题和反转序列问题,展示了块状链表在处理这些问题时的优势。相比于平衡树,块状链表的空间效率更高,时间复杂度为O(sqrt(N))。
摘要由CSDN通过智能技术生成

部分内容参考自 论文 苏煜《对块状链表的一点研究》

1. 数组和链表对比:

数组和链表对比
操作 数组 链表

存储结构

地址连续的存储单元,物理位置相邻

地址不连续,物理位置不相邻

定位

O(1)

O(N)

添加

O(N)

O(1)

删除

O(N)

O(1)

数组有很好的定位功能,一般对应于固定的长度,不适合添加/删除等操作,当数组有序时,可二分查找某值,效率很好,O(logN)。

链表添加删除效率极高,很适合这类操作。但定位效率很低。

2.块状链表

块状链表是对数组和链表的折中,集两者之长,在定位,添加删除的效率上都有大幅提升。

整体上使用链表,链表节点是一个大小适当的数组。

如下图:

3.基本操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值