算法是代码的灵魂,每一个以编程作为职业的程序员都应该熟悉算法。本课程介绍适合于计算机使用的、求解各种常用问题的算法。通过本课程的学习,要求学生正确理解算法设计与分析中的基本概念,掌握算法设计的基本策略和方法,能对建立的算法进行理论分析。通过本课程的学习你将掌握算法的概念,算法复杂度的分析方法,掌握对较为复杂计算问题进行建模的方法,能应用基本算法对计算问题进行求解并得到正确解。此外,还会掌握基本算法求解问题的基本步骤,基本算法包括:递归与分治法、排序与树结构、图搜索算法、贪心算法、动态规划算法、最大流算法和随机算法等。尤其是,课程的学习让你能掌握比较不同算法求解问题的方法,能利用时间或者空间复杂度对算法进行分析,并能根据计算问题的场景选择合适的算法。
通过本课程的学习,要求学生正确理解算法设计与分析中的基本概念,掌握算法设计的基本策略和方法,能对建立的算法进行时间和空间复杂度分析。
1.离散数学
2.程序设计基础(任何程序设计语言)
1.算法设计与分析Python ,程振波、李曲、王春平,清华大学出版社,第1版,2018年
2.算法导论,Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein著, 殷建平等译者,机械工业出版社,第3版,2013年1月
1、线上章节的题目与教材章节为什么不一致?
由于每个学期教学内容都会动态变化,因此线上章节是希望较大范围覆盖算法课程的内容,因此章节题目与教材章节题目有不一致。同学们可以根据学期初老师公布的教学计划阅读教材和线上视频。
2、线上内容不在教学计划内的需要看吗?
不在教学计划内的视频大家可以根据自身情况选看。
3、线上使用Python介绍算法,而教材则用C++会不会导致看不懂线上视频?
不会。因为算法的描述与采用哪种程序设计语言没有关系。
4、如何利用好线上视频资源?
由于我们是线上、线下混合教学,因此大家在上好线下课的同时,可以把线上视频作为答疑或知识拓展。
5、课程的PPT、代码可在哪儿下载?
链接: https://pan.baidu.com/s/1aFerBBcYejOsrXguv1riDg 提取码: maxv