算法设计与分析

已有 2220人学习

开始学习

课程概述

从辗转相除法到割圆术,从算盘到电子计算机,算法在人类文明发展中始终扮演着重要角色。如今,有计算的地方,就有算法的身影。从网上购物到出行规划,从工作学习到休闲娱乐,算法无所不在,已融入到人们生活的方方面面。

本课程是面向计算机和信息技术相关专业本科生的核心专业课,同时适合对算法的基础知识有学习需求的相关从业人员。课程汇聚了北航计算机学院顶级的算法授课团队,不但讲授分而治之、动态规划和贪心策略等经典算法技术,而且以产教融合的方式邀请阿里巴巴与滴滴出行等互联网公司副总裁、ACM国际大学生程序设计竞赛世界冠军等产业界算法专家进行经验分享。

本课程具有对基础知识要求少、对核心方法讲解细、对算法本质剖析深、对产业需求分析准的特点。无论你是你是零基础的算法初学者,还是在算法刷题中困惑的求职者,相信本课程都将通过详细易懂的实例剖析降低理解难度,通过相关问题的归纳总结揭示算法本质,助你真正学懂算法!

授课目标

  • 帮助学生掌握算法的定义、性质和表示方法,能够熟练使用伪代码对算法进行描述;

  • 帮助学生掌握算法分析的理论工具,能够熟练采用渐近上界分析算法运行时间;

  • 帮助学生掌握算法设计的常用方法,包括分而治之、动态规划、贪心策略;

  • 帮助学生建立对简单计算问题的建模、分析、算法设计、算法优化和编程求解能力。

01 算法绪论篇
1.4 算法的分析
1.5 第四范式创始人戴文渊博士访谈:ICPC世界冠军的修炼之道
1.3 算法的表示
1.2 算法的定义
1.1 算法的由来
02 分而治之篇I
2.2 递归式求解
2.1 归并排序
2.3 最大子数组问题I
03 分而治之篇II
3.4 阿里巴巴副总裁李飞飞博士访谈:双十一背后的大数据算法
3.3 次序选择问题
3.2 快速排序
3.1 逆序对计数问题
07 贪心策略篇
7.3 活动选择问题
7.1 部分背包问题
7.2 霍夫曼编码
04 动态规划篇I
4.1 0-1背包问题
4.2 最大子数组问题II
06 动态规划篇III
6.3 滴滴出行副总裁叶杰平博士访谈:海量共享出行的算法设计
6.1 钢条切割问题
6.2 矩阵链乘法问题
05 动态规划篇II
5.3 编辑距离问题
5.1 最长公共子序列问题
5.2 最长公共子串问题
09 图算法篇II
9.2 图中环路的存在性判断
9.3 拓扑排序
9.1 有向图的深度优先搜索
9.4 强连通分量
08 图算法篇I
8.3 深度优先搜索
8.1 图的基本概念
8.2 广度优先搜索
10 图算法篇III
10.5 图算法篇总结
10.3 单源最短路径:Dijkstra算法
10.2 最小生成树:Kruskal算法
10.1 最小生成树:Prim算法
10.4 单源最短路径:Bellman-Ford算法