文档库 最新最全的文档下载
当前位置:文档库 › 第1课 绪论

第1课 绪论

第1课 绪论
第1课 绪论

第一课绪论

一、选择题

1.算法的计算量的大小称为计算的()。

A.效率B.复杂性C.现实性D.难度

2.算法的时间复杂度取决于()。

A.问题的规模B.待处理数据的初态C.A和B

3.计算机算法指的是(),它必须具备()这三个特性。

A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法

4.计算机算法指的是(),它必须具备()这三个特性。

A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性

C.确定性、有穷性、稳定性D.易读性、稳定性、安全性

5.下面关于算法说法错误的是()。

A.算法最终必须由计算机程序实现

B.为解决某问题的算法同为该问题编写的程序含义是相同的

C.算法的可行性是指指令不能有二义性

D.以上几个都是错误的

6.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构B.顺序结构、链式结构

C.线性结构、非线性结构D.初等结构、构造型结构

二、应用题

1.数据元素之间的关系在计算机中有几种表示方法?各有什么特点?

2.评价一个好的算法,可以从哪几方面来考虑的?

3.对于一个数据结构,一般包括哪三个方面的讨论?

4.当你为解决某一问题而选择数据结构时,应从哪些方面考虑?

5.在编制管理通讯录的程序时,什么样的数据结构合适?为什么?

6.试举一例,说明对相同的逻辑结构,同一种运算在不同的存储方式下实现,其运算效率不同。

7.有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为Tl=O(2n),A2的时间复杂度为T2=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。

8.分析下面程序段中循环语句的执行次数。

i=0;s=0;n=100;

do{

i=i+1;

s=s+10*i;

}while((i

9.调用下列C函数f(n),回答下列问题:(1)试指出f(n)值的大小,并写出f(n)值的推导过程;(2)假定n= 5,试指出f(5)值的大小和执行f(5)时的输出结果。

C函数:

int f(int n)

{

int i,j,k,sum = 0;

for(i=l; i

{

for(j=n;j>i-1; j--)

for(k=1;k

sum++;

printf("sum=%d\n",sum);

}

return (sum);

}

10.设n是偶数,试计算运行下列程序段后m的值并给出该程序段的时间复杂度。

m=0;

for( i=1 ; i<= n ; i++ )

for( j=2*i ;j<= n ;j++ )

m=m+1;

11.有下列运行时间函数,分别写出相应的大O表示的运算时间。

⑴T1 (n)=1000; ⑵T2(n)=n2+1000n; ⑶T3(n)=3n3+100n2+n+1;

12.设n为正整数,试确定下列程序段中语句“x++;”的频度。

⑴for (i=1;i<=n;i++)

for (j=1;j<=i;j++)

x++;

⑵i=0;

j=1;

while (i+j<=n){

x++;

if (i>j) j++;

else i++;

}

⑶for (i=1;i<=n;i++)

for (j=1;j<=i;j++)

for (k=1;k<=n;k++)

x++;

⑷x=0;y=n; //n是不小于1的常数

while (y>=(x+1)*(x+1)){

x++;

}

⑸设n为正整数,试确定如下程序段中if语句的频度。x=91;

y=100;

while(y>0){

if (x>100){x-=10;y--;}

else x++;

}

相关文档