跳到正文

1.2 算法的基本概念、算法的时间复杂度·选择题讲评

35 分钟

1.2 选择题讲评:复杂度先写次数关系再看选项

同学,你已经会用求和分析复杂度。今天的新困难是选择题常把算法基本特性、好算法的评价标准和复杂度计算混在一起,还会用特殊循环让“两层就是平方”的直觉失效。稳定做法是先独立算,再看选项。

第一类概念题:有限性、确定性、可行性、输入和输出是算法成立的基本特性;正确性、可读性、健壮性、效率与低存储需求是评价算法好坏的常见标准。若题问“算法必须具备”,不能把“效率高”选进去,因为低效但有限且明确的步骤仍可能是算法。

陪做倍增循环:

i = 1
while i <= n:
    i = 2*i

次循环前 ,终止条件给 ,所以执行次数为 。依据是循环变量按乘法增长,不能按 去数。

再看两层循环:外层 ,内层执行 次。总次数

由于 ,总量是 ,不是看到两层就选

递归题则写调用次数或递推式。若 每次只调用 并做常数工作,;若出现两个规模近半的调用,结构会完全不同。

针对性错解:把“至少一个输入”当算法必需条件会忽略零输入算法;循环条件只看变量名不列取值表,容易把对数、根号和线性混淆;复杂度保留低阶项或常数系数,则没有抓住渐近增长。

迁移题:for(i=1;i<=n;i*=3) for(j=0;j<i;j++) op(); 的时间复杂度是什么?答案总次数为 。独立验收是能对一组概念选项先归类,对每段循环列前三个取值并写出等式或求和,再选择答案。下一课集中处理需要完整书写过程的复杂度综合题。

小纸条

不看正文,独立完成“1.2 算法的基本概念、算法的时间复杂度·选择题讲评”的迁移与验收任务。

登录 后可看答案

Practice

本课练习

0

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

本课练习正在补齐,暂不应标记为完成。
1.2 算法的基本概念、算法的时间复杂度·选择题讲评 · 考研计算机 408 全程课 · op599 课程