列表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,这部分复杂度为O(1),
超级会员免费看
订阅专栏 解锁全文

42

被折叠的 条评论
为什么被折叠?



