首页 > 计算机等级考试
题目内容 (请给出正确答案)
[主观题]

试设计一个线性时间算法确定一个串t是否为另一串的循环旋转.例如,arc与car互为循环旋转.

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“试设计一个线性时间算法确定一个串t是否为另一串的循环旋转.例…”相关的问题
第1题
设子数组a[0:k-1]和a[k:n-1]已排好序(0≤k≤n-1).试设计一个合并这两个子数组为排好序的数组a[0:n-1]的算法.要求算法在最坏情况下所用的计算时间为O(n),且只用到O(1)的辅助空间.

点击查看答案
第2题
快速排序算法在排序过程中,在待排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分
成两个部分,前面一部分元素值小于等于基准元素,而后面一部分元素值大于基准元素。然后再分别对前后两个部分进一步进行划分。根据上述描述,快速排序算法采用了 (61) 算法设计策略。已知确定基准元素操作的时间复杂度为,则快速排序算法的最好和最坏情况下的时间复杂度为 (62) 。

A.分治

B.动态规划

C.贪心

D.回溯

点击查看答案
第3题
(1)试证明下面的算法Primality能以80%以上的正确率判定给定的整数n是否为素数.另一方面,举出

(1)试证明下面的算法Primality能以80%以上的正确率判定给定的整数n是否为素数.另一方面,举出整数n的一个例子,表明算法对此整数n总是给出错误的解答,进而说明该算法不是一个蒙特卡罗算法.

(2)试找出,上述算法Primality中可用于替换整数30030的另一个整数(可使用大整数),使得用此整数代替30030后,算法的正确率提高到85%以上.

点击查看答案
第4题
问题描述:一台精密仪器的工作时间为n个时间单位.与仪器工作时间同步进行推于仪器维修程序.一
旦启动维修程序,仪器必须进入维修程序.如果只有一个维修程序启动,则必须进入该维修程序.如果在同一时刻有多个维修程序,可任选进入其中的一个维修程序.维修程序必须从头开始,不能从中间插入.一个维修程序从第s个时间单位开始,持续t个时间单位,则该维修程序在第s+t-1个时间单位结束.为了提高仪器使用率,希望安排尽可能短的维修时间.

算法设计:对于给定的维修程序时间表,计算最优时间表.

数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和k.n表示仪器的工作时间单位,k是维修程序数.在接下来的k行中,每行有2个表示维修程序的整数s和t,该维修程序从第s个时间单位开始,持续t个时间单位.

结果输出:将计算出的最短维修时间输出到文件output.txt.

点击查看答案
第5题
问题描述:设磁盘上有n个文件每个文件占用磁盘上的1个磁道.这n个文件的检索概率分别是且磁头从

问题描述:设磁盘上有n个文件每个文件占用磁盘上的1个磁道.这n个文件的检索概率分别是磁头从当前磁道移到被检信息磁道所需的时间可用这两个磁道之间的径向距离来度量.如果文件fi存放在第i(1≤i≤n)道上,则检索这n个文件的期望时间是.式中,d(i,j)是第i道与第j道之间的径向距离|i-j|.

磁盘文件的最优存储问题要求确定这n个文件在磁盘上的存储位置,使期望检索时间达到最小.试设计一个解此问题的算法,并分析算法的正确性与计算复杂性.

算法设计:对于给定的文件检索概率,计算磁盘文件的最优存储方案.

数据输入:由文件input.txt给出输入数据.第1行是正整数n,表示文件个数.第2行有n个正整数a,表示文件的检索概率.实际上第k个文件的检索概率应为

结果输出:将计算的最小期望检索时间输出到文件output.txt.

点击查看答案
第6题
已知一个线性表(16,25,35,43,51,62,87,93),采用散列函数H(Key)=Key mod 7将元素散列到表长为9的

已知一个线性表(16,25,35,43,51,62,87,93),采用散列函数H(Key)=Key mod 7将元素散列到表长为9的散列表中。若采用线性探测的开放定址法解决冲突(顺序地探查可用存储单元),则构造的哈希表为(57),在该散列表上进行等概率成功查找的平均查找长度为(58)(为确定记录在查找表中的位置,需和给定关键字值进行比较的次数的期望值称为查找算法在查找成功时的平均查找长度)。

A.

B.

C.

D.

点击查看答案
第7题
● 已知一个线性表(16, 25, 35, 43, 51, 62, 87, 93),采用散列函数H(Key)=Key mod 7将元素散列到

● 已知一个线性表(16, 25, 35, 43, 51, 62, 87, 93),采用散列函数H(Key)=Key mod 7将元素散列到表长为9的散列表中。若采用线性探测的开放定址法解决冲突(顺序地探查可用存储单元),则构造的哈希表为 (57) ,在该散列表上进行等概率成功查找的平均查找长度为 (58) (为确定记录在查找表中的位置,需和给定关键字值进行比较的次数的期望值称为查找算法在查找成功时的平均查找长度)。

点击查看答案
第8题
设计一个“判别在表达式中左、右括号是否配对出现”的算法,采用______数据结构最佳。A.线性表的顺序

设计一个“判别在表达式中左、右括号是否配对出现”的算法,采用______数据结构最佳。

A.线性表的顺序存储结构

B.栈

C.队列

D.线性表的链式存储结构

点击查看答案
第9题
问题描述:设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的
一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积.

算法设计:对于给定的I和k,计算I的最大k乘积.

数据输入:由文件input.txt提供输入数据.文件的第1行中有2个正整数n和k.正整数n是序列的长度,正整数k是分割的段数.接下来的一行中是一个n位十进制整数(n≤10).

结果输出:将计算结果输出到文件output.txt.文件第1行中的数是计算出的最大k乘积.

点击查看答案
第10题
甲公司要从位于S市的工厂直接装运500台电视机送往位于T市的一个批发中心。这票货物价值为150万元。
T市的批发中心确定这批货物的标准运输时间为2.5天,如果超出标准时间,每台电视机的每天的机会成本是30元。甲公司的物流经理设计了下述3个物流方案,请从成本角度评价这些运输方案的优劣。

(1)A公司是一家长途货物运输企业,可以按照优惠率每公里0.05元/台来运送这批电视机,装卸费为每台0.10元。已知S市到T市的公路运输里程为1100公里,估计需要3天的时间才可以运到(因为装卸货物也需要时间)。

(2)B公司是一家水运企业,可以提供水陆联运服务,即先用汽车从甲公司的仓库将货物运至S市的码头(20公里),再用船运至T市的码头(1200公里),然后再用汽车从码头运至批发中心(17公里)。由于中转的过程中需要多次装卸,因此整个运输时间大约为5天。询价后得知,陆运运费为每公里0.06元/台,装卸费为每台0.10元,水运运费为每百台0.6元。

(3)C公司是一家物流企业,可以提供全方位的物流服务,报价为22800元。它承诺在要求时间内运到,但是准时的百分率为80%。

点击查看答案
第11题
试题四(共15分)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】模式匹

试题四(共15分)

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

【说明】

模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。

如果匹配成功,返回s在t中的位置,否则返回-1 。

KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下:

1.在串t和串s中,分别设比较的起始下标i=J=O

2.如果串t和串s都还有字符,则循环执行下列操作:

(1)如果j=-l或者t[i]-s[j],则将i和j分别加1,继续比较t和s的下一个字符;

(2)否则,将j向右滑动到next[j]的位置,即j =next[J]

3.如果s中所有字符均已比较完毕,则返回匹配的起始位置(从1开始);否则返回一1.

其中,next数组根据子串s求解。求解next数组的代码已由get_next函数给出。

【C代码】

(1)常量和变量说明

t,s:长度为悯铂Is的字符串

next:next数组,长度为Is

(2)C程序

include <stdio.h>

nclude <stdliB.h>

include <string.h>

/*求next【】的值*/

void get_next(int *next, char *s, int Is) {

int i=0,j=-1;

next[0]=-1;/*初始化next[0]*/

while(i< ils){/*还有字符*/

if(j=-1l ls[i]=s[j]){/*匹配*/

j++;

i++;

if(s[i]一s[jl)

next [i]- next[j];

else

Next[i]=j;

}

else

J= next[j];

}

}

int kmp(int *next, char *t ,char *s, int.lt, int Is )

{

inti= 0,j =0 ;

while (i<lt && (1 ) {

if(j=-1 II 2_) {

i++ ;

j ++ ;

} else

(3) :

}

if (j>= ls)

Retum (4)

else .

retum-1;

【问题1】(8分)

根据题干说明,填充C代码中的空(1)~(4).

【问题2】(2分)

根据题干说明和C代码,分析出kmp算法的时间复杂度为 (5)(主串和子的长度分别为It和Is,用O符号表示)。

【问题3】(5分)

根据C代码,字符串“BBABBCAC”的next数组元素值为 (6) (直接写素值,之间用逗号隔开)。若主串为“AABBCBBABBCACCD”,子串为“BBABBCAC则函数Kmp的返回值是 (7)

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改