- 3
- 0
- 约6.49千字
- 约 24页
- 2017-05-09 发布于四川
- 举报
中科院计算机算法分析与设计习题1–2答案
第一章 复杂性分析初步 习题 * 语 句 s/e 频率 总步数 templateclass T void Mult(T **a, T **b, int m, int n, int p) 0 0 0 { for(int i=0; im; i++) 1 m+1 m+1 for(int j=0; jp; j++) { 1 m*(p+1) m*p+m T sum=0; 1 m*p m*p for(int k=0; kn; k++) 1 m*p*(n+1) m*p*n+m*p Sum+=a[i][k]*b[k][j]; 1 m*p*n m*p*n C[i][j]=sum; 1 m*p m*p } } 总 计 2*m*p*n+4*m*p+2*m+1 1. 试确定下述程序的执行步数,该函数实现一个m×n矩阵与一个n×p矩阵之间的乘法: s/e 表示每次执行该语句所要执行的程序步数,频率是指该语句总的执行次数。 2. 函数MinMax用来查找数组a[0:n-1]中的最大元素和最小元素,以下给出两个程序。令n为实例特征。试问:在各个程序中,a中元素之间的比较次数在最坏情况下各是多少? 6. 按照渐进阶从低到高的顺序排列以下表达式: templateclass T bool MinMax(T a[], int n, int Min, int Max) { if(n1) return false; Min=Max=0; //初始化 for(int i=1; in; i++){ if(a[Min]a[i]) Min=i; if(a[Max]a[i]) Max=i; } return true; } 最好,最坏,平均比较次数都是 2*(n-1) templateclass T bool MinMax(T a[], int n, int Min, int Max) { if(n1) return false; Min=Max=0; //初始化 for(int i=1; in; i++){ if(a[Min]a[i]) Min=i; else if(a[Max]a[i]) Max=i; } return true; } 最坏2*(n-1) 最好 n-1, 平均 7. 1)假设某算法在输入规模是 时为 .在某台计算机上实现并完成该算法的时间是 秒. 现有另一台计算机,其运行速度为第一台的64倍, 那么,在这台计算机上用同一算法在 秒内能解决规模为多大的问题? 总时间 原运行速度(时间/每步) 时间复杂度(步数) 规模 关系式: 时间复杂度(计算步数)*运行速度(时间/每步)=运行所需时间 解:设在新机器上 秒内能解决规模为 的问题,时间复杂度为 由于新机器运行速度提高64倍,则运行速度变为 由关系式 ,得 解,得 由于新复杂度 ,新机器的运行速度为 2) 若上述算法改进后,新算法的计算复杂度为 , 则在新机器上用 秒时间能解决输入规模为多大的问题? 代入关系式 ,得 设在新机器上用 秒时间能解决输入规模为 的问题,则 解,得 3)若进一步改进算法,最新的算
您可能关注的文档
最近下载
- 专业月嫂服务合同范本及注意细节.docx VIP
- 《煤化学》全套教学课件.pdf
- 铁路工程沉降变形观测作业指导书.docx VIP
- tsg zf001-2006 《安全阀安全技术监察规程》新.pdf VIP
- 2024年山东省淄博市高青县中考一模英语试题.docx VIP
- 2015款一汽大众高尔夫_汽车使用手册用户操作图示图解详解驾驶指南车主车辆说明书电子版.pdf
- 铁路工程沉降变形观测与评估技术2015年稿.pdf VIP
- JBL JBL专业 无线麦克风系统 VM200 用户手册.pdf
- 相贯体的投影与相贯线一相贯体及相贯线的概念相贯体两相交的立体相贯线相交立体表面的交线立体相贯三种情.ppt VIP
- 妊娠期心肺复苏中国急诊专家共识测试卷及答案.docx
原创力文档

文档评论(0)