数据结构学习笔记------线性表(2)

1、为了对线性结构的数据进行某数据的读写操作,采用顺序存储结构最为合适,因为随机存取的效率是最高的。我们一般认为,顺序存储结构指的是数组,如一维数组、二维数组等。以一维数组为例,只需要知道数组起始地址和元素在数组中的下标,就可以直接计算元素所在位置。
链式存储、索引存储和散列存储都达不到这么高的效率。

2、对顺序表的读取操作,时间复杂度为 O(1)。在第 i 个结点之后插入一个新结点,必须从后向前移动第 n、n-1、…、i+1 位置的元素,才能腾出第 i+1 个位置来存放该新插入结点。假设i是随机的,则在第i个位置之后插入一个新结点平均需要移动近一半表长的元素,时间复杂度为 O(n)。同理,删除第 i 个元素的时间复杂度也是 O(n)。

在一个长度为 n 的顺序表中删除第 i 个元素,第 i+1 个位置的元素移到第原第 i 个位置,第 i+2 个位置的元素移动到第i+1 个位置,…,第 n 个位置的元素移动到第 n-1 个位置,共需移动 n-i 个元素。

3、在顺序表中等概率删除一个元素平均需要移动的元素个数。长度为 n的顺序表共有 n+1 个插入位置,如图所示。

从表尾向表头方向开始计算,在第 n+1 个位置插入元素需要移动 0 个元素,在第 n 个位置插入元素需要移动 1 个元素,…,在第 1 个位置(位置从 1 开始算起)插入元素需要移动 n 个元素。故而,插入一个元素平均需要移动元素为

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值