算法分析与设计 第一章概论练习题

1.【单选题】 (2分)

有时间复杂性img,时间复杂性从低到高的顺序是?( )

A.img

B.img

C.img

D.img

答案: C

解析: 常见时间复杂度之间的关系

img

所消耗的时间从小到大:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

2.【单选题】 (2分)

T(n)表示当输入规模为 n 时的算法效率,以下算法效率最优的是( )。

A.T(n)= T(n-1)+1,T(1)=1 相当于O(N)

B.T(n)= 2n2 相当于O(N^2)

C.T(n)= T( n/2 )+1,T(1)=1 相当于O(logN)

D.T(n)=3nlog2n 相当于O(NlogN)

答案:C

解析: 7fee55ac198cf3bf5281415cd9fa00b4.png

3.【单选题】 (2分)

算法复杂度分析的两种方法是( )。

A.最坏情况的复杂度和最好情况的复杂度

B.事前分析和事后统计

C.最坏情况的复杂度和平均复杂度

D.最好情况的复杂度和平均复杂度

答案:B

4.【单选题】 (2分)

下列对算法效率的描述错误的是:( )。

A.平均效率是指输入为n时,算法在随机获典型输入情况的效率。

B.最优效率是指输入为n时,算法在最优情况的效率。

C.最差效率是指输入为n时,算法在最坏情况的效率。

D.平均效率是指输入为n时,算法在最坏情况的效率。

答案:D

5.【单选题】 (2分)

下面列出了算法的四个性质,哪个性质是程序不一定具备的( )?

A.确定性

B.有穷性

C.输出

D.输入

答案:B

6.【单选题】 (2分)

下面哪些内容不是算法设计之前要完成的内容? ( )

A.使用何种计算机语言设计程序

B.确定合适的算法策略

C.是求精确解还是近似解

D.确定合适的数据结构

答案:A

7.【单选题】 (2分)

下面那个算法在最坏情况下的时间复杂性最低。( )

A.插入排序

B.归并排序

C.冒泡排序

D.快速排序

答案:B

解析:img

8.【单选题】 (2分)

描述算法的基本方法有( )。(1)自然语言(2)流程图(3)伪代码(4)机器语言

A.(1)(2)(3)(4)

B.(1)(2)(3)

C.(1)(2)(4)

D.(2)(3)(4)

答案:B

9.【单选题】 (2分)

算法设计的基本步骤是( )。(1)选择数据结构和算法策略(2)算法分析(3)分析求解问题(4)证明算法正确性(5)描述算法

A.(3)(4)(1)(5)(2)

B.(3)(1)(5)(4)(2)

C.(3)(1)(4)(5)(2)

D.(1)(2)(3)(4)(5)

答案:B

10.【单选题】 (2分)

下面程序的时间复杂度为( )

x=1
for i=1 to n
	for j=1 to i
		for k=1 to j
			x++

A.n3

B.n

C.nlogn

D.n2

答案:A

11.【单选题】 (2分)

下面说法关于算法与问题的说法正确的是( )。

A.一个问题的同一实例可以有不同的表示形式。

B.操作系统是一个算法。

C.计算机每次求解是针对问题的每个实例求解。

D.给定一个实例,如果一个算法能得到正确解答,称这个算法解答了该问题。

答案:A

12.【单选题】 (2分)

算法与程序的区别是( )。

A.确定性

B.有穷性

C.输出

D.输入

答案:B

13.【单选题】 (2分)

在算法设计与分析过程中,有算法设计,算法的正确性证明,算法的复杂性分析,程序设计等几个重要步骤,下面哪种顺序是正确的?( )

A.算法设计->算法的正确性证明->算法的复杂性分析->程序设计

B.算法的正确性证明->算法设计->算法的复杂性分析->程序设计

C.算法的正确性证明->算法的复杂性分析->算法设计->程序设计

D.算法设计->算法的复杂性分析->算法的正确性证明->程序设计

答案:A

解析:1580539565753815

14.【单选题】 (2分)

算法分析中,算法运行时间的度量单位是:( )。

A.秒

B.基本操作被执行的次数

C.小时

D.分

答案:B

解析:Page7-p2

15.【单选题】 (2分)

下面哪一个不是时间的渐进符号:( )。

A.O

B.Θ

C.Y

D.Ω

答案:C

解析:渐进符号详解 - Chen洋 - 博客园 (cnblogs.com)

16.【单选题】 (2分)

下列关于计算机算法的描述不正确的是( )。

A.算法是指解决问题的方法或步骤

B.算法是若干指令的有穷序列

C.算法必须要有输入和输出

D.算法是编程的思想

答案:C

解析:

  1. 输入:在算法中可以有零个或者多个输入

  2. 输出:在算法中至少有一个或者多个输出

  3. 有穷行:在执行有限的步骤之后,自动结束不会出现无限循环并且每一个步骤在可接受的时间内完成

  4. 确定性:算法的每一个步骤都具有确定的含义,不会出现二义性

  5. 可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限的次数完成

17.【单选题】 (2分)

算法分析中,"O"表示( )

A.渐进下界

B.渐进上界

C.非紧上界

D.非紧下界

答案:B

18.【判断题】 (2分)

关于时间复杂度的理解,有人说:时间复杂度高的算法,算法运行速度一定比时间复杂度低的算法慢。( )

答案: 错误

19.【判断题】 (2分)

证明算法不正确,只需给出一个反例,算法不能正确处理即可。( )

答案:正确

20.【判断题】 (2分)

n!=o(2n) ( )

答案:错误

21.【判断题】 (2分)

常数阶算法的运行时间与规模n无关。( )

答案: 正确

22.【判断题】 (2分)

同一数学模型使用不同的数据结构会有不同的算法,有效性有很大差别。( )

答案:正确

23.【判断题】 (2分)

同一算法只有一种形式描述。( )

答案:错误

24.【判断题】 (2分)

算法的性质中对于输入的描述是可以有0个或多个外部量作为输入, 如果是0个,意味着这个算法没有数据需要加工处理。( )

答案:错误

解析:所谓0个输入是指算法本身定出了初始条件;

25.【判断题】 (2分)

平均时间复杂性是指算法在最好和最坏情况下的时间复杂性的算术平均值。( )

答案:错误

解析:平均时间复杂度也是从概率的角度看,更能反映大多数情况下算法的表现。当然,实际中不可能将所有可能的输入都运行一遍,因此平均情况通常指的是一种数学期望值,而计算数学期望值则需要对输入的分布情况进行假设。平均运行时间很难通过分析得到,一般都是通过运行一定数量的实验数据后估算出来的

26.【判断题】 (2分)

给定一个实例,如果一个算法能得到正确解答,称这个算法解答了该问题。( )

答案:错误
解析:该问题的所有实例

27.【判断题】 (2分)

计算机每次求解是针对问题的每个实例求解。( )

答案:错误

解析:一个实例

28.【判断题】 (2分)

一个问题的同一实例可以有不同的表示形式。( )

答案:正确

29.【判断题】 (2分)

一个问题的算法必须在有穷时间终止,并且对一切合法的输入都能得出满足要求的结果。( )

答案:正确

30.【判断题】 (2分)

时间复杂度是指算法最坏情况下的运行时间。( )

答案:正确

31.【判断题】 (2分)

f(n)=3n3+7n2+4nlogn=On2( )

答案:错误

32.【判断题】 (2分)

时间复杂度是指算法最好情况下的运行时间。( )

答案:错误

解析:时间复杂度是指算法最坏情况下的运行时间

33.【判断题】 (2分)

好的算法在很大程度上取决于问题中数据所采用的数据结构。 ( )

答案:正确

34.【判断题】 (2分)

一个需要指数级操作次数的算法是效率很差的,无用的算法.( )

答案:错误

35.【填空题】 (4分)

一个程序应包括对数据的____________和对操作的____________两个方面的内容。

答案:35.1 描述35.2 描述
解析: 一是对数据的描述。想要使用某个数据,就必须声明其类型、作用范围、使用规范、组织形式等,这就是数据的描述。

​ 二是对操作的描述。想要实现什么样的功能,具体该如何做,数据该如何使用和处理等,这就是对操作的描述。也就是算法。

36.【填空题】 (4分)

算法分析的两个主要方面是分析算法的____________和____________。

答案:36.1 时间复杂度36.2 空间复杂度

37.【填空题】 (2分)

任何可用计算机求解的问题所需的时间都与其____________有关。

答案:37.1 问题规模

38.【填空题】 (2分)

算法的执行时间主要与___有关。

答案:38.1 问题规模

39.【填空题】 (2分)

一个算法是由控制结构和___构成的。

答案: 39.1 原操作

解析:一个算法是由控制结构和原操作构成的,其执行时间取决于两者的综合效果

40.【填空题】 (4分)

算法的复杂性包括( )复杂性和( ) 复杂性。

答案:40.1 时间40.2空间

41.【问答题】 (4分)

算法设计应满足哪几条目标?

答案:正确性、可使用性、可读性、健壮性、高效率低存储

正确性:算法能够按照规定的功能和性能正确地执行,这是最基本并且最重要的标准!
可使用性:也叫用户友好性,算法能够方便地使用
可读性:算法是易于理解的,这要求算法在逻辑上是清晰的、结构化的
健壮性:算法具有容错性,即异常处理,能够检测不合理的数据,保证程序不发生异常中断等
高效率低存储:效率是指算法的执行时间;存储是指算法执行所用的最大存储空间。算法应该在保证前面的条件下,执行时间尽可能低存储空间尽可能小

42.【问答题】 (4分)

什么是算法?算法有哪些特征?

答案: 算法是求解问题的一系列计算步骤,用来将输入数据转换成输出结果。

P~3算法五大特征:①有限性②确定性③输入性④输出性⑤可行性

算法的定义

通常,定义算法为"为解决某一特定任务而规定的一个指令序列"。

算法的5个基本特性

① 有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。
② 有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。
③ 确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的动作都应严格地、清晰地规定。
④ 有穷性。一个算法无论在什么情况下都应在执行有穷步后结束。
⑤ 有效性。算法中每一条运算都必须是足够基本的。就是说,它们原则上都能精确地执行,甚至人们仅用笔和纸做有限次运算就能完成。

43.【问答题】 (4分)

算法的渐进时间复杂性的含义?

答案:采用渐进符号表示的算法时间复杂度也称渐进时间复杂度,它反映的是一种增长趋势

44.【问答题】 (2分)

分析以下算法的时间复杂度?(要求写出详细过程)

void fun(int n)
{ int s=0,i,j,k;
 for (i=0;i<=n;i++)
     for (j=0;j<=i;j++)
         for (k=0;k<j;k++)
             s++;
}

答案:

(1)f(n)=i=0nj=0ik=0j11(2)=i=0nj=0i(j10+1)(3)=i=0nj=0ij(4)=i=0ni(i+1)2(5)=12(i=0ni2+i=0ni)(6)=2n3+6n2+4n12(7)=O(n3)

posted @   Icarus_Alpha  阅读(1403)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示