算法是计算机科学所有分支的基础,它们在高效计算机程序的开发中起着关键作用。坎特伯雷大学的Algorithms算法课程教授一系列基本算法,并分析它们的复杂性。课程旨在提供对用于解决广泛问题的基本数据结构和算法设计方法的良好理解。
一、核心主题
1.算法思维和设计简介;
2.算法分析(证明技术、渐近符号);
3.分而治之:递归设计技术和解决递归;
4.贪婪算法:硬币兑换、区间调度、分数背包、霍夫曼码;
5.动态规划:自上而下的方法、自下而上的枚举、最佳子结构、最佳硬币兑换、网格中的最小成本路径、多阶段图、无界背包、0/1背包、编辑距离、最长公共子序列、动态时间扭曲;
6.计算几何:凸包(属性、礼品包装算法、格雷厄姆扫描算法)、平面扫描算法(最近对、线交点)、范围搜索方法(kD树、四叉树);
7.图表:拓扑排序、最小生成树、单源和所有对最短路径;
8.回溯:组合搜索和生成;
9.字符串匹配:Rabin-Karp算法、Knuth-Morris-pratt算法、Boyer-Moore算法。
二、课程学习成果
1.理解并描述算法的行为。
2.非正式地推理程序的正确性。
3.分析算法的复杂性。
4.给定算法的高级描述,实现算法。
5.实现自顶向下和自底向上的动态编程技术。
6.开发和实现分治算法。
7.轻松实现递归算法。
8.实现一系列经典的图形算法。
9.实现一系列经典的计算几何算法。
10.欣赏标准字符串匹配算法的优点。
三、课程评估
测验+作业+实验室+考试
四、参考书籍
Steven S. Skiena,The Algorithm Design Manual,Springer,2nd Ed.,2008.
Cormen,Leiserson,Rivest,and Stein,Introduction to Algorithms,3rd Ed.,The MIT press,2009
Goodrich and Tamassia,Data Structures and Algorithms in python,John Wiley & Sons,2013.
以上就是关于新西兰坎特伯雷大学python算法课程的相关内容介绍,同学们在日常的学习中遇到难题,欢迎找留求艺的专业老师咨询!