单项选择(2014年秋程序员软考)

含有n个元素的线性表用顺序存储方式时,对其运算速度最快的操作是【 】。

A、访问第i个元素(1≤i≤n)

B、删除第i个元素(1≤i≤n)

C、在第i个元素(1≤i≤n)之后插入一个新元素

D、查找与特定值相匹配的元素

答案解析

A

【解析】

线性表(a1,a2,…,an)采用顺序存储方式如下图所示,其逻辑上相邻的元素物理位置也是相邻的,因此,按照序号访问元素的速度是很快的。

访问第i个元素(1≤i≤n)的元素,仅需计算出a1的存储位置再进行内存的随机访问操作即可,以LOC(ai)表示线性表中第一个元素的存储位置,L表示每个元素所占存储单元的个数,则计算LOC(ai)的方式如下:

LOC(ai)=LOC(a1)+(i-1)XL

再分析其他运算,不在表尾插入或删除时就需要移动其他元素,这是比较耗时的。查找与特定值相匹配的元素时,需要经过一个与表中多个元素进行比较的过程,相对于随机访问第i个元素,消耗更多时间。

讨论

表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均个数为_______,删除一个元素需要移动元素的平均个数为_______。供选择的答案:A.(n-1)/2 B.n C.n+1 D.n-1 E.n/2 F.(n+1)/2 G.(n-2)/2

在含有n个元素的顺序表中,算法时间复杂度为O(1)的操作是【 】

线性表选用顺序存储结构表示的适用场合是____________________。

顺序表存储方式只能用于存储线性结构。

若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法时间复杂度为【 】。(1≤i≤n+1)

设A是一个线性表(a1,a1,...,an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为多少?若元素插在ai与ai+1之间(0≤i≤n-1)的概率为,则平均每插入一个元素所要移动的元素个数又是多少?

假设线性表的长度为n,且采用顺序存储结构存储。当在线性表的任何位置上插入一个数据元素的概率相同时,插入一个数据元素需要移动元素的平均个数为【 】。

下列对顺序存储的有序表 (长度为 n)实现给定操作的算法中平均时间复杂度为 O(1)的是【 】

若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是【 】。

含有n个元素的线性表采用顺序存储,等概率删除其中任一个元素,平均需要移动【 】个元素。