APP下载

《数据结构》课程中算法分析部分教学探讨

2019-09-10李峰

教育周报·教育论坛 2019年39期
关键词:最大公约数复杂度数据结构

李峰

数据结构课程在计算机专业课中属于难度较大的课程,再加上高职学生的高等数学课程教学内容简单,离散数学也没有开设,导致学习效果很差。学生主要反映内容抽象难懂,理论概念难于理解。笔者经过多年的教学总结出了一些心得体会,下面以算法分析部分为例,谈谈教学内容的组织,希望起到抛砖引玉的作用。

一、算法分析部分的传统教学

算法分析在数据结构课程中主要是计算算法时间复杂度,也就是算法耗费的时间。这一部分因为设计到数学知识,学生尤其不易掌握。

传统的教学步骤是,先给出时间复杂度的计算规则,然后使用数学公式进行推导。学生看到这些得出的数学式子,也是没有实际的概念。一般将问题规模n取值从小到大,以說明为什么考虑“当n充分大时”的时间耗费。如图1所示。

二、从实验到理论的逆向教学法

1重视实践教学

对于高职高专学生来说,具体的数值比抽象的n更容易接受。为了更好的理解和认识算法的效率,我们首先让学生上机实验,通过实验得出的数据来理解关于问题规模n的概念。

比如,采用判断素数的实验,实验要求学生在程序中增加一个计数器以统计关键语句的重复次数。实验输出的结果更直观,这就有了通俗直白的理解基础。

2 精选实验内容

我们还精心选择实验内容,这部分的实验内容要具备两点:一是要简单,代码只有十来行,算法思路也直观;二是大家熟悉的问题求解,易于理解。一方面对算法的效率有直观的认识,另一方面也体现了求解同一问题采用不同算法的效率差别。

例如,计算两个数的最大公约数实验。先从定义出发,写出算法,如图3所示。然后采用辗转相除算法,如图4所示,使用类似这样的测试数据(1 000 005,1 000 000),学生发现后者只需执行2次取模运算,而前者需要10次运算才能找到最大公约数。学生震惊之时正好告诉他们:这是特殊情况,一般的效率还得进行数学推导。

三、结论

实验数据不是用来评价和对比算法的,但它使学生对算法的效率问题有了直观感受,反过来再理解数学式子,符合理论指导实践,实践证明理论的认知规律。事实证明,学生对此有良好的反映,教师在不断的探索教学中收获了认同。

猜你喜欢

最大公约数复杂度数据结构
柬语母语者汉语书面语句法复杂度研究
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
Kerr-AdS黑洞的复杂度
非线性电动力学黑洞的复杂度
OECD国家出口复杂度的测度与比较
OECD国家出口复杂度的测度与比较
求相关最大公约数(abn±1,abm±1),其中a∈Z,b∈Z+,m,n∈Z—
求相关最大公约数(abn±1,abm±1),其中a∈Z,b∈Z+,m,n∈Z
求最大公约数的两种算法案例