单选题
已知一个线性表(38,25,74,63,52,48),假定采用h(k)=k%6计算散列地址进行散列存储,若用线性探测的开放定址法处理冲突,则在该散列表上进行查找的平均查找长度为 (44) 。
单选题
已知一个线性表(38,25,74,63,52,48),假定采用h(k)=k%6计算散列地址进行散列存储,若用线性探测的开放定址法处理冲突,则在该散列表上进行查找的平均查找长度为 (44) 。
A.1.5 B.1.7 C.2 D.2.3
【正确答案】
A
【答案解析】[解析] 用散列函数n(k)=k%6计算得到散列地址见下表。
散列地址关键字
散列地址
38 | 25 | 74 | 63 | 52 | 48 |
2 | 1 | 2 | 3 | 4 | 0 |
用线性探测的开放定址法处理冲突所构造得到的散列表见下表。
散列表 0 | 1 | 2 | 3 | 4 | 5 |
48 | 25 | 38 | 74 | 63 | 52 |
1 | 1 | 1 | 2 | 2 | 2 |
该散查找次数列表的平均查找长度为(1×3+2×3)/6=1.5。
单选题
对含有n个互不相同元素的集合,同时找最大元和最小元至少需要 (45) 次比较。
A.2n B.2(n-1) C.n-1 D.n+1
【正确答案】
C
【答案解析】[解析] 按照下面的顺序查找算法,如果初始序列递增有序,则只需比较,n-1次;如果初始序列递减有序,则需比较2(n-1)次。因此,对含有n个互不相同元素的集合,同时找最大元和最小元至少需要比较n-1次,最多需要比较2(n-1)次。
max=min=r[0].key;
for(i=1;i>n;i++)
if(r[i].key>max)
max=r[i].key; else if(r[i].key<min)
min=r[i].key;
单选题
直接选择排序的平均时间复杂度为 (46) 。
A.O(n) B.O(nlogn) C.O(n2) D.O(logn)
【正确答案】
C
【答案解析】[解析] 本题主要考查排序算法的时间复杂度。排序算法的时间复杂度是用元素的平均比较次数和元素的平均移动次数来衡量的,它是评价排序算法的主要标准。