第一单元绪论数据的逻辑结构是数据在计算机中的表示()。C++提供了实现抽象数据类型的机制()。一个C++语言程序是用C++语言描述的一个算法()。散列结构是一种特殊的存储结构方式()。算法分析通常是指对算法实施事前分析()。√×√√×一个数据结构DS可以用一个二元组DS=(D,R)表示,期中D是数据元素的有限集合,R是D中的集合。A.操作B.运算C.元素序偶D.结点关系说明:“数据元素”是数据结构这门学科中的正式称谓。“结点”有时还包含一些附加的内容,如指针域。算法的健壮性是指。A.当输入不合法数据时,程序会采取应急措施B.算法是正确的C.程序不会被病毒所染D.算法执行不会陷入无限循环下列表示中正确的是。A.2n+O(n)=O(n2)B.O(n)=3nC.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)(2)i=1;x=0;do{x++;i=2*i;}while(in);答:划线语句的执行次数为n-1。算法复杂度为O(n)。答:循环执行次数x与i之间的关系是i==2x。退出循环时,i=n,所以2x=n,所以x=log2n。即执行次数为log2n,算法复杂度为O(log2n)。(3)for(inti=1;i=n;i++)for(intj=1;j=i;j++)for(intk=1;k=j;k++)x++;答:分别为n(n+1)(n+2)/6和O(n3)ninininiijniijjkiiiijS11211111121212111126112nnnini621141112121nnnnnnnnS1211nnini(4)x=n;y=0;while(x=(y+1)*(y+1))y++;划线语句的执行次数为,算法复杂度为O()。nn分析:y正好代表语句执行次数。退出循环时,满足y+1sqrt(n),即ysqrt(n)-1,所以y=sqrt(n),或者y=sqrt(n),综合起来就有y=sqrt(n)。