早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

类比二分搜索算法,设计A分搜索算法(k为大于2的整数)如下:首先检查n/k处(n为被搜索集合的元素个数

题目

类比二分搜索算法,设计A分搜索算法(k为大于2的整数)如下:首先检查n/k处(n为被搜索集合的元素个数)的元素是否等于要搜索的值,然后检查2n/k处的元素,...,这样,或者找到要搜索的元素,或者把集合缩小到原来的1/k;如果未找到要搜索的元素,则继续在得到的集合上进行k分搜索;如此进行,直到找到要搜索的元素或搜索失败。此A分搜索算法在最坏情况下搜索成功的时间复杂度为(1),在最好情况下搜索失败的时间复杂度为(2)。

A.O(logn)

B.O(nlogn)

C.O(logkn)

D.O(nlogkn)

参考答案
正确答案:C
解析:与二分法查找类似,k分查找法可用k叉树来描述。k分查找法在查找成功时进行比较的关键个数最多不超过树的深度,而具有n个结点的k叉树的深度为[logkn(k+1)]+ 1,所以,k叉查找法在查找成功时和给定值进行比较的关键字个数至多为[logkn]+1,即时间复杂度为O(logkn)。同时,k分查找法在杳找不成功时,与给定值进行比较的关键字个数也至多为[logkn(k+1)]+1,即时间复杂度为O(logkn)。