类比二分搜索算法,设计k分搜索算法(k为大于2的整数)如下:首先检查n/k处(n为被搜索集合的元素个数)的元素是否等于要搜索的值,然后检查2n/k处的元素,……,这样,或者找到要搜索的元素,或者把集合缩小到原来的1/k;如果未找到要搜索的元素,则继续在得到

admin2009-02-15  34

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

选项 A、O(logn)
B、O(nlogn)
C、O(logkn)
D、O(nlogkn)

答案C

解析 与二分法查找类似,k分查找法可用k叉树来描述。k分查找法在查找成功时进行比较的关键个数最多不超过树的深度,而具有n个结点的k叉树的深度为 [logkn(k+1)]+1,所以,k叉查找法在查找成功时和给定值进行比较的关键字个数至多为 [logk n]+1,即时间复杂度为O(logk n)。同时,k分查找法在查找不成功时,和给定值进行比较的关键字个数也至多为[logkn(k+1)]+1,即时间复杂度为O(logkn)。
转载请注明原文地址:https://kaotiyun.com/show/6XxZ777K
0

相关试题推荐
最新回复(0)