下列对顺序存储的有序表 (长度为 n)实现给定操作的算法中平均时间复杂度为 O(1)的是【 】
A、查找包含指定值元素的值
B、插入包含指定值元素的算法
C、删除第 i 个元素的算法
D、获取第 i 个值的算法
下列对顺序存储的有序表 (长度为 n)实现给定操作的算法中平均时间复杂度为 O(1)的是【 】
A、查找包含指定值元素的值
B、插入包含指定值元素的算法
C、删除第 i 个元素的算法
D、获取第 i 个值的算法
D
【解析】
顺序表即顺序存储存储的线性表,其特点是:支持随机访问,但插入和删除比较麻烦。
链表即链式存储的线性表,其特点是:插入和删除比较容易,但不支持随机访问。
顺序表中只有随机访问元素时间复杂度为O(1) ,即根据元素位置(下标)访问元素时间复杂度为 O(1)。顺序存储的有序表即有序数组。
选项A,在有序数组中查找包含指定值的元素的位置最快的方法是用二分查找,时间复杂度为 O(logn) .
选项B,在有序数组中插入包含指定值的元素最快的方法是:首先用二分查找找到插入元素的位置,时间复杂度为 O(logn);然后把位于插入元素后面的元素的位置后移一格,平均时间复杂度为 O(n). 综上,总的时间复杂度为 O(n).
选项C,删除第 i 个元素的最快的方法是:首先利用顺序表支持随机访问的性质找到第 i 个元素并删除,时间复杂度为 O(1);然后把位于插入元素后面的元素的位置前移一格,平均时间复杂度为 O(n). 综上,总的时间复杂度为 O(n).
含有n个元素的线性表用顺序存储方式时,对其运算速度最快的操作是【 】。
含有n个元素的线性表采用顺序存储方式时,对其运算速度最快的操作是【 】。
含有n个元素的线性表采用顺序存储,等概率删除其中任一个元素,平均需要移动【 】个元素。
对于长度为n的线性表(即n个元素构成的序列),若采用顺序存储结构(数组存储),则在等概率下,删除一个元素平均需要移动的元素数为【 】。
若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是【 】。
若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法时间复杂度为【 】。(1≤i≤n+1)
假设线性表的长度为n,且采用顺序存储结构存储。当在线性表的任何位置上插入一个数据元素的概率相同时,插入一个数据元素需要移动元素的平均个数为【 】。