[好课推荐]数据结构与算法python实现
[好课推荐]数据结构与算法python实现
觉得有用的话,欢迎一起讨论相互学习~
官方地址:
中国大学MOOC
主讲人: 北京大学陈斌老师,中国人民解放军陆军装甲兵学院徐丙立老师
https://www.icourse163.org/course/0809PKU068-1206307812
B站也有UP主提供的链接
以下为官网信息,别说了,课程设置超级好~AWSL!!!
课程概述
- 本课基于主讲教师在北京大学讲授数据结构与算法课(Python版)的多年教学实践经验,面向具有Python语言程序设计基础的大学生和社会公众,介绍常见的基本数据结构以及相关经典算法,强调问题-数据-算法的抽象过程,关注数据结构与算法的时间空间效率,培养学生编写出高效程序,从而解决实际问题的综合能力。
- 本课内容包括课程概述、算法分析、基本线性结构、递归与动态规划、排序与查找、树及其算法、图及其算法等。课程将围绕着“算法+数据结构=程序”的思路,以问题求解为导向进行学习,帮助学生提高理论、抽象、设计的能力。
- 本课注重数据结构与算法的实践与应用,在课程中穿插了生动案例和编程练习,引导学生积极建立数据抽象和层次分析的思维模式,通过解决实际问题来加深对数据组织结构和相应处理算法的学习体会,并学会通过实际应用情况来权衡时空和其它资源开销,达到最优的应用效果。
授课目标
- 本课注重数据结构与算法的实践与应用,在课程中穿插了生动案例和编程练习,引导学生积极建立数据抽象和层次分析的思维模式,通过解决实际问题来加深对数据组织结构和相应处理算法的学习体会,并学会通过实际应用情况来权衡时空和其它资源开销,达到最优的应用效果。
课程大纲
一、概述
101 引子:数据时代 9m53s
102 问题求解的计算之道 12m20s
103 图灵机计算模型 14m49s
104 算法和计算复杂性 14m28s
105 突破计算极限 9m08s
106 什么是抽象和实现 9m00s
107 为什么研究数据结构与算法 10m02s
第一周测验
二、算法分析
201 什么是算法分析 16m49s
202 大O表示法 13m06s
203 “变位词”判断问题(上) 10m27s
204 “变位词”判断问题(下) 9m54s
205 Python数据类型的性能(上) 12m37s
206 Python数据类型的性能(下) 10m18s
第二周测验
三、基本结构(上)
301 什么是线性结构 6m59s
302 栈抽象数据类型及Python实现 10m14s
303 栈的应用:简单括号匹配 11m19s
304 栈的应用:十进制转换为二进制 9m34s
305 表达式转换(上) 11m24s
306 表达式转换(下) 12m36s
307 后缀表达式求值 8m18s
第三周测验
第三周作业
四、基本结构(下)
308 队列抽象数据类型及Python实现 10m01s
309 队列的应用:热土豆 7m52s
310 队列的应用:打印任务(上) 7m37s
311 队列的应用:打印任务(下) 17m23s
312 双端队列抽象数据类型及Python实现+回文词判定 7m25s
313 无序表抽象数据类型及Python实现 11m03s
314 无序表的链表实现 12m54s
315 有序表抽象数据类型及Python实现 13m14s
316 线性结构小结 6m08s
第四周测验
第四周作业
五、递归(上)
401 什么是递归 13m20s
402 递归的应用:任意进制转换 6m32s
405 递归可视化:谢尔宾斯基三角 10m31s
403 递归调用的实现 8m32s
404 递归可视化:分形树 10m54s
406 递归的应用:汉诺塔 10m37s
407 递归的应用:探索迷宫 16m35s
第五周作业
第五周测验
六、递归(下)
408 分治策略 5m34s
409 优化问题和贪心策略 7m49s
410 找零兑换问题的递归解法 12m32s
411 找零兑换问题的动态规划解法 13m26s
412 动态规划案例分析 17m53s
413 递归小结 6m51s
第六周测验
第六周作业
七、排序与查找(上)
501 顺序查找算法及分析 9m41s
502 二分查找算法及分析 12m20s
503 冒泡和选择排序算法及分析 12m14s
504 插入排序算法及分析 7m06s
505 谢尔排序算法及分析 6m15s
506 归并排序算法及分析 9m13s
507 快速排序算法及分析 12m30s
第七周测验
第七周作业
八、排序与查找(下)
508 什么是散列 7m21s
509 完美散列函数 15m02s
510 区块链技术 17m20s
511 散列函数设计 8m47s
512 冲突解决方案 11m59s
513 映射抽象数据类型及Python实现 14m58s
514 排序与查找小结 9m45s
第八周作业
第八周测验
九、树及算法(上)
601 什么是树 8m37s
602 树结构相关术语 8m23s
603 树的嵌套列表实现 11m00s
604 树的链表实现 6m57s
605 树的应用:表达式解析(上) 13m03s
606 树的应用:表达式解析(下) 15m15s
607 树的遍历 10m11s
608 优先队列和二叉堆 11m45s
609 二叉堆的Python实现 13m14s
第九周作业
第九周测验
十、树及算法(下)
610 二叉查找树及操作 8m59s
611 二叉查找树实现及算法分析(上) 11m55s
612 二叉查找树实现及算法分析(下) 14m39s
613 AVL树的定义和性能 7m08s
614 AVL树的Python实现 20m04s
615 树结构小结 7m39s
第十周作业
第十周测验
十一、图及算法(上)
701 图的基本概念及相关术语 11m51s
702 图抽象数据类型 5m57s
703 图抽象数据类型的Python实现 5m26s
704 图的应用:词梯问题 8m20s
705 实现广度优先搜索 15m07s
706 图的应用:骑士周游问题 6m37s
707 骑士周游问题算法实现 7m56s
708 骑士周游问题算法分析与改进 8m45s
第十一周作业
第十一周测验
十二、图及算法(下)
709 通用的深度优先搜索 10m27s
710 图的应用:拓扑排序 9m30s
711 图的应用:强连通分支 11m16s
712 图的应用:最短路径 16m54s
713 图的应用:最小生成树 12m08s
714 图结构小结 6m33s
第十二周测验
第十二周作业