首页/ 题库 / [单选题]类比二分搜索算法,设计k分搜索算法(k为的答案

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

单选题
2022-07-12 00:23
A、O(logn)
B、O(nlogn)
C、O(logkn)
D、O(nlogkn)
查看答案

正确答案
C

试题解析

标签:
感兴趣题目
图的深度优先搜索是一种典型的回溯搜索的例子,可以通过递归算法求解。
设计在有序表A[n]中按二分查找关键字为K的递归和非递归算法。
类比二分搜索算法,设计k分搜索算法(k为大于2的整数)如下:首先检查n/k处(n为被搜索集合的元素个数)的元素是否等于要搜索的值,然后检查2n/k处的元素,……,这样,或者找到要搜索的元素,或者把集合缩小到原来的1/k;如果未找到要搜索的元素,则继续在得到的集合上进行k分搜索;如此进行,直到找到要搜索的元素或搜索失败。此k分搜索算法在最坏情况下搜索成功的时间复杂度为(57),在最好情况下搜索失败的时间复杂度为(58)。
类比二分搜索算法,设计A分搜索算法(k为大于2的整数)如下:首先检查n/k处(n为被搜索集合的元素个数)的元素是否等于要搜索的值,然后检查2n/k处的元素,...,这样,或者找到要搜索的元素,或者把集合缩小到原来的1/k;如果未找到要搜索的元素,则继续在得到的集合上进行k分搜索;如此进行,直到找到要搜索的元素或搜索失败。此A分搜索算法在最坏情况下搜索成功的时间复杂度为(1),在最好情况下搜索失败的时间复杂度为(2)。
A*算法是一种“最好优先搜索算法”,也是一种()式的算法。
广度优先搜索算法中,OPEN表的数据结构实际是一个二叉树,深度优先搜索算法中,OPEN表的数据结构实际是一个()。
免疫算法是通过人工方式构造的一类优化搜索算法,其模仿机理包括()
有如下程序 main() { int n[5]={0,0,0},i,k=2; for(i=1;i<3;i++)n[i]=n[i]+1; printf("%d ",n[k]); }该程序的输出结果是______。
有如下程序 main( ) {int n[5]={0,0,0},i, k=2; for(i=0 i<k i++)n[i]=n[i]+1; cout<<n[k]<<end1; }该程序的输出结果是
已知有一维数组T[0..m*n-1],其中m>n。从数组T的第一个元素(T[0])开始,每隔n个元素取出一个元素依次存入数组B[1..m]中,即B[1]=T[0],D[2]=T[n],依此类推,那么放入B[k](1≤k≤n)的元素是______。
已知有一维数组T[0...m*n-1],其中m>n。从数组T的第一个元素(T[0])开始,每隔n个元素取出一个元素依次存入数组B[1...m]中,即B[1]=T[0],B[2)= T[n],依次类推,那么放入B[k](1≤k≤m)的元素是______。
下面是一个对整数数组A中的前n个元素求最小值的C程序,函数返回最小元素的位置。 Int minValue(int A[],int n){ int k=0: for(int j=1;j<=n-1;j++) if(A[j]<a[k])k=j; return k: 当n=4时,程序中可能的执行路径数为______。
相关题目
有如下程序: #include<iostream> using namespace std; class AA{ int k; protected: int n; void setK(int k){this一>k=k;} public: void setN(int n){this一>n=n;} }; class BB:public AA{/*类体略*/}; int main } BB X; A n=1;//1 B setN(2);//2 C k=3;//3 D setK(4);//4 return 0; } 在标注号码的四条语句中正确的是( )。
在有n个无序无重复元素值的数组中查找第i小的数的算法描述如下:任意取一个元素r,用划分操作确定其在数组中的位置,假设元素r为第k小的数。若i等于k,则返回该元素值;若i小于k,则在划分的前半部分递归进行划分操作找第i小的数;否则在划分的后半部分递归进行划分操作找第k-i小的数。该算法是一种基于()策略的算法。
二分搜索算法是利用()
二分搜索算法是利用_______________实现的算法
定义为()的input元素可用于创建一个搜索域,比如站点搜索或Google搜索。
请读程序: # include<srdio.h> main( ) { int n[2],i,j,k; { for(i=0,i<2;i + + )n[i]=0; k=2; for(i=0;i<k;i+ +) {for(j=0;j<k;j+ +)n[j]=n[i]+l; print{("%d ",n[k]); } 上面程序片段输出结果是 ( )
●采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为 (36) 。
●采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为 (36) 。
设f:Z×Z→Z,f(<n,k>)=n2k,其中Z为整数集合,下面命题为真的是Ⅰ.f是满射的Ⅱ.f是单射的Ⅲ.F-1(N)=ZXN(N 为自然数集合)Ⅳ.f(z{1})=N
阅读下面程序段,则执行后的结果为 #include"stdio.h" main() { int m=4,n=2,k; k=fun(m,n); printf("%d ",k);} fun(int m,int n) { return(m*m*m-n*n*n);}
阅读下面程序段,则执行后的结果为 #inclide"stdio.h" main() { int m=4,n=2,k; k=fun(m,n); printf("%d ",k);} fun(int m,int n) { return(m*m*m-n*n*n);}
有如下程序,该程序的执行结果为______。 Dim k As Integer n=5 m=1 k=1 Do While k <= n m=m*2 k=k+1 Loop Print m
已知有一维数组A(0..m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系(4)可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。
设A为n阶矩阵,满足A2=A,k为正整数,则(A+E)k等于
已知待排序的n个元素可分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为( )。
试利用循环队列编写求k阶菲波那契序列中前n+1项的算法,要求满足:f n≤max而f n+1>max,其中max为某个约定的常数。(注意:本题所用循环队列的容量仅为k,则在算法执行结束时,留在循环队列中的元素应是所求k阶菲波那契序列中的最后k项)
在分支—限界算法设计策略中,通常采用(4)搜索问题的解空间。
在分支一限界算法设计策略中,通常采用(54)搜索问题的解空间。
分支一限界算法设计策略中,通常采用(62)搜索问题的解空间。
在分支—限界算法设计策略中,通常采用(57)搜索问题的解空间。
广告位招租WX:84302438

免费的网站请分享给朋友吧