11、列表ADT算法比较与泛型ADT实现

列表ADT算法比较与泛型ADT实现

1. 无序和有序列表ADT算法复杂度比较

在分析列表操作算法的复杂度时,我们首先要确定规模因子。对于列表操作算法,规模因子就是列表中的元素数量 numItems

一些算法在无序列表ADT和有序列表ADT中是相同的,如 lengthIs isFull reset getNextItem 方法,它们的复杂度均为O(1),因为执行的语句数量不依赖于列表中的元素数量。

1.1 无序列表ADT
  • isThere操作 :该操作需要遍历列表,直到找到目标元素或到达列表末尾。最好情况下只需检查一个位置,最坏情况下需要检查 numItems 个位置,平均和最坏情况复杂度均为O(numItems)。
  • insert操作 :分为找到插入位置和插入元素两部分。在无序列表中,元素直接插入到 numItems 位置并递增 numItems ,复杂度为O(1)。
  • delete操作 :同样分为找到要删除的元素和删除元素两部分。查找元素的复杂度为O(numItems),删除元素时将 numItems - 1 位置的值放入要删除元素的位置并递减 numItems ,这部分复杂度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值