77范文网 - 专业文章范例文档资料分享平台

通信数据结构第一章绪论习题(3)

来源:网络收集 时间:2019-03-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

F0=0, Fl=1, Fn=Fn-1+Fn-2, n=2,3... 请就此斐波那契数列,回答下列问题。

(1) 在递归计算Fn的时候,需要对较小的Fn-1,Fn-2,?, Fl, F0精确计算多少次? (2) 如果用大O表示法,试给出递归计算Fn时递归函数的时间复杂度录多少? 【解答】

(1)由斐波那契数列的定义可得: 1. Fn=Fn-1+Fn-2 =2Fn-2+Fn-3 =3Fn-3+2Fn-4 =5Fn-4+3Fn-5 ?? =pF1+qF0

设Fm的执行次数为Bm(m=0、1、2、?、n-1),由以上等式可知,Fn-1被执行一次,即Bn-1=1;Fn-2被执行两次,即Bn-2=2;直至F1被执行p次、F0被执行q次,即B1=p,B0=q。Bm的执行次数为前两等式第一因式系数之和,即Bm=Bm-1+Bm-2,再有Bn-1=1和Bn-2=2,这也是一个斐波那契数列。可以解得:

(2)时间复杂度为O(n)

六、程序填空题(或算法阅读题) 1.void DD ( ) {

ElemType A[ ]={1,3,5,7,9,2,4,6,8,10},B[10]; TwoMerge(A, B,0,4,9);

for ( int i=0; i<10; i++) cout<

调用该算法后,输出结果为:

【解答】1 2 3 4 5 6 7 8 9 10 七、算法设计题

1. 已知输入x,y,z三个不相等的整数,设计一个“高效”算法,使得这三个数按从小到大输出。“高效”的含义是用最少的元素比较次数、元素移动次数和输出次数。 【解答】 void Best()

{//按序输出三个整数的优化算法 int a,b,c,t;

scanf(“%d%d%d”,&a,&b,&c); if(a>b)

11

{t=a; a=b; b=t:} //a和b已正序 if(b>c)

{t=c; c=b; //c已到位

if(a>t) {b=a; a=t;} //a和b已正序 else b=t; }

printf(“%d,%d,%d\\n”,a,b,c);

//最佳2次比较,无移动;最差3次比较,7个赋值 }

2. 在数组A[n]中查找值为k的元素,若找到则输出其位置i(1≤i≤n),否则输出0作为标志。设计算法求解此问题,并分析在最坏情况下的时间复杂度。 【题目分析】从后向前查找,若找到与k值相同的元素则返回其位置,否则返回0。

【解答】

int Search(ElemType A[n+1], ElemType k) {i=n;

while(i>=1)&&(A[i]!=k)) i--; if(i>=1) return i; else return 0; }

当查找不成功时,总的比较次数为n+1次,所以最坏情况下时间复杂度为O(n)。

在学过第 9 章 “查找”后,可优化以上算法:设“监视哨”。算法如下: int Search(ElemType A[n+1], ElemType k) {i=n; A[0]=k;

while(A[i]!=k) i--; return i; }

研究表明,当n>=1000时,算法效率提高50%。

12

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库通信数据结构第一章绪论习题(3)在线全文阅读。

通信数据结构第一章绪论习题(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/550602.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: