数据结构第1单元课后练习答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A. 操作 B. 运算 C. 元素序偶 D. 结点关系
说明:“数据元素”是数据结构这门学科中的正式称谓。 “结点”有时还包含一些附加的内容,如指针域。
算法的健壮性是指 。
A. 当输入不合法数据时,程序会采取应急措施 B. 算法是正确的 C. 程序不会被病毒所染 D. 算法执行不会陷入无限循环
下列表示中正确的是 。
(3) for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) for (int k=1;k<=j;k++) x++;
答:分别为 n(n+1)(n+2)/6 和O(n3)
n
S
i
j
n
1
i
j
n
i i 1 1 n i2 1
A. 2n+O(n)=O(n2) B. O(n)=3n C. 3n2+nlog2n=O(nlogn) D. 6=O(6)
说明:f=O(g)表示f的增长速度不超过Cg(C是非零常量)。
确定下列各程序段的程序步,确定划线语句的执行次数, 计算它们的渐近时间复杂度。
(1) i=1; k=0; do{ k=k+10*i; i++; } while(i<=n-1)
n
i
i1 j1 k 1
i1 j1
i1 2
2 i1
2 i1
n i2 1 n2n 1n 1
i 1
6
n i 1 nn 1
i 1
2
S 1 n2n 1n 1 1 nn 1 nn 1n 2
12
4
6
(4)x=n;y=0; while(x>=(y+1)*(y+1)) y++;
第一单元 绪论
百度文库
数据的逻辑结构是数据在计算机中的表示( × )。 C++提供了实现抽象数据类型的机制( √ )。 一个C++语言程序是用C++语言描述的一个算法( × )。 散列结构是一种特殊的存储结构方式( √ )。 算法分析通常是指对算法实施事前分析( √ )。
一个数据结构DS可以用一个二元组 DS=(D,R)表示,期中D是数据元素 的有限集合,R是D中 的集合。
分析:y正好代表语句执行次数。退出循环时,满足y+1>sqrt(n),即 y>sqrt(n)-1,所以y=sqrt(n),或者y= sqrt(n),综合起来就有y= sqrt(n) 。
划线语句的执行次数为 n ,算法复杂度为O( n )。
答:划线语句的执行次数为 n-1 。算法复杂度为O(n) 。
(2)i=1; x=0; do{ x++; i=2*i; } while (i<n);
答: 循环执行次数x与i之间的关系是
i==2x。退出循环时,i>=n,所以 2x>=n,所以x=log2n。即执行次数 为log2n,算法复杂度为O(log2n) 。
相关文档
最新文档