类比二分搜索算法,设计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)

题目

类比二分搜索算法,设计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)。
更多“类比二分搜索算法,设计A分搜索算法(k为大于2的整数)如下:首先检查n/k处(n为被搜索集合的元素个数 ”相关问题
  • 第1题:

    给定n行n列的整数矩阵A,其中每行的整数从左到右升序排列,每列的整数从上到下降序排列。即 i, j ∈ {1, ..., n-1} 时,矩阵元素满足以下关系:A[i, j] < A[i, j + 1] 和 A[i, j] > A[i + 1, j]。给定一个整数x,试问矩阵A 是否有整数x。 例如:给定以下矩阵A,如果 x = 5,返回true;如果 x = 10,返回false。 A = 7 8 9 3 4 6 1 2 5 请设计一个复杂度为O(n)的搜索算法。


    C

  • 第2题:

    给定n个整数,n个数的取值范围为[1,k], 计数排序的时间复杂度是O (n+k) 。


    n+k

  • 第3题:

    二分搜索算法是利用()实现的算法。注意:填空填1234中的某个数,不填汉字 1.分治策略 2.动态规划 3. 贪心法 4. 回溯法


    动态规划法

  • 第4题:

    使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为 ,在最坏情况下,搜索的时间复杂性为


    A

  • 第5题:

    4.二分搜索算法是利用()实现的算法。


    动态规划法