学习内容:
CCC301 是算法学习路径中的最核心的课程。本课程使用Python语言(Python是表达算法最好的语言),系统学习各种编程算法与编程策略,进一步提升学生的思维能力——即对大脑思考过程的觉察力,以及解决复杂问题的能力 —— 即不仅要找出可行解,还要找出高效的可行解。
学生将在大量 CCC 原题的练习中,深入理解核心算法与策略的设计思想、适用场景与实现技巧,为解决高级编程竞赛问题打下坚实基础。
课程内容包括:
- 算法复杂度分析(Big-O):理解程序运行时间与输入规模之间的关系,提升效率意识
- 二分搜索的五种应用场景:查找位置、查找区间、边界元素查找等
- 代码优化技巧:在算法无法改进的情况下,通过代码优化来提升性能
- 递归与记忆化:优化递归效率,避免重复计算
- 表达式转换与计算:prefix、infix、postfix 之间的转换与 postfix 的表达式求值
- 正则表达式进阶:在CCC201的基础上,继续学习split、backreference 与 look-around等高级技巧,进一步提升文本搜索和处理能力
- 图算法:BFS 与 DFS 的多种应用,包括查找多路径与查找最短路径等
- 贪心策略:如 Dijkstra 最短路径算法与实现
- 动态规划策略:解决具有最优子结构的问题,理解Warshall算法这样的经典动态规划算法
- 计数问题(Counting):掌握组合与排列类问题中高效的计数方法