重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 求职面试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

试分析下面各程序段的时间复杂度。 x=n; //n>1 y=0; while(x≥(y+1)* (y+1)) y++;

查看答案
更多“试分析下面各程序段的时间复杂度。 x=n; //n>1 y=0; while(x≥(y+1)* (y+1)) y++;”相关的问题

第1题

试分析下面各程序段的时间复杂度。 x=90; y=100; while(y>0) if(x>100) {x=x-10;y--;} else x++;
点击查看答案

第2题

试分析下面各程序段的时间复杂度。 (1)x=90; y=100; while(y>0) if(x>100) {x=x-10;y--;} else x++; (2)s=0; for i=0; i <n; i++) for(j="0;" j++) s+="B[i][j];" sum="s;" (3)i="1;" i="i*3;" (4)x="n;" n> 1 y=0; w
点击查看答案

第3题

下面这个程序段的时间复杂度是( )。 for(i=1; i<n; i++) {y=y+1; for(J=0; J<=(2*n);J++) x++;}

A.O(log2n)

B.O(n)

C.O(nlog2n)

D.O(n2)

点击查看答案

第4题

下面这个程序段的时间复杂度是( )。 for (i=1;i<n;i++) { y=y+1; for (j=0;j<=(2*n);j++) x++; }

A.O(log2n)

B.O(n)

C.O(nlog2n)

D.O(n2)

点击查看答案

第5题

下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0; j<=(2*n); j++) x++; }

A.O(log2n)

B.O(n)

C.O(nlog2n)

D.O(n2)

点击查看答案

第6题

下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0;j<=(2*n);j++) X++; }

A.O(log2n)

B.O(n)

C.0(nlog2n)

D.O(n2)

点击查看答案

第7题

以下程序是用来计算两个非负数之间的最大公约数我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()

A.O(1)

B.O(logn)

C.O(n)

D.O(n^2)

点击查看答案

第8题

设计一个高效的算法,从顺序表L中删除所有值介于x和y之间的所有元素(假设y>=x),要求时间复杂度为O(n),空间复杂度为O(1)。
点击查看答案

第9题

●试题四

阅读下列函数说明,将应填入(n)处的字句写在答卷纸的对应栏内。

【函数1说明】

函数compare(SqList A,SqList B)的功能是:设A=(al,…,am)和B=(bl,…,bn)均为顺序表,"比较",两个顺序表A和B的大小。设A'和B'分别为A和B中除去最大共同前缀后的子表(例如,A=(y,x,x,z,x,z),B=(y,x,x,z,y,x,x,z),则两者中最大的共同前缀为(y,x,x,z),在两表中除去最大共同前缀后的子表分别为A′=(x,z)和B′=(y,x,x,z))。若A′=B′=空表,则A=B;若A′=空表,而B′≠空表,或者两者均不为空表,且A′的首元小于B'的首元,则A<B:否则A>B。

提示:算法的基本思想为:若相等,则j+l,之后继续比较后继元素;否则即可得出比较结果。显然,j的初值应为0,循环的条件是j不超出其中任何一个表的范围。若在循环内不能得出比较结果,则循环结束时有3种可能出现的情况需要区分。

【函数1】

int compare(SqListA,SqList B)

{

//若A<B,则返回-1;若A=B,则返回0:若A>B,则返回1

j=0;

while(i< (1) &&j<

B.length)

if(A.elem[j]<

B.elem[j])return(-1);

else if(A.elem[j]>

B.elem[j])return (1) ;

else (2) ;

if(A.length==

B.length)return(0);

else if(A.length<

B.length)return(-1);

else return (1) ;

}//compare

//函数1的时间复杂度是 (3) 。

【函数2说明】

函数exchange_L(SLink&L,int m)的功能是:用尽可能少的辅助空间将单链表中前m个结点和后n个结点的互换。即将单链表(a1,a2…,am,b1,b2,…,bn)改变成(b1,b2,…,bn,a1,a2,…,am)。

【函数2】

void exchange_L(SLink &L,int m)

{

if( (4) &&L->next)//链表不空且m!=0

{

P=L->next;k=1;

while(k<m&&p)//查找am所在结点

{

P= (5) ;++k;

}

if( (6) &&p->next)//n!=0时才需要修改指针

{

ha=L->next;//以指针ha记a1结点的位置

L->next=p->next;//将b1结点链接在头结点之后

p->next=NULL;//设am的后继为空

q= (7) ;//令q指向b1结点

while(q->next)q= (8) ;//查找bn结点

q->next= (9) ;//将a1结点链接到bn结点之后

}

}

}

//函数2的时间复杂度是 (10) 。

点击查看答案

第10题

所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具体地,这里的查询区域是某一侧无界的广义矩形区域,比如R=[-1,+1]x[0,﹢∞),即是对称地包含正半y坐标轴、宽度为2的一个广义矩形区域,当然,对查询的语义功能要求依然不变——从某一相对固定的点集中,找出落在任意指定区域R内部的所有点。

范围树(176页习题[8-20])稍作调整之后,固然也可交持半无穷范围查询,但若能针对这一特定问题所固有的性质,改用优先级搜索树(priority search tree,PST)之类的数据结构,则不仅可以保持O(r+logn)的最优时间效率,而且更重要的是,可以将空间复杂度从范围树的O(nlogn)优化至O(n)。

如图x10.3所示,优先级搜索树除了首先在拓扑上应是一棵二叉树,还同时遵守以下三条规则。

①首先,各节点的y坐标均不小于其左右孩子(如果存在)——因此,整体上可以视作为以y坐标为优先级的二叉堆。

②此外,相对于任一父节点,左子树中节点的x坐标均不得大于右子树中的节点。

③最后,互为兄弟的每一对左、右子树,在规模上相差不得超过一。

a)试按照以上描述,用C/C++定义并实现优先级搜索树结构;

b)试设计一个算法,在O(nlogn)时间内将平面上的n个点组织为一棵优先级搜索树;

c)试设计一个算法,利用已创建的优先级搜索树,在O(r+logn)时间内完成每次半无穷范围查询,其中r为实际命中并被报告的点数。

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案