算法设计与分析 Design and Analysis of Algorithms

所在平台: Coursera

课程主页: https://www.coursera.org/learn/algorithms

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:算法设计与分析 概述:本课程旨在帮助学生针对实际问题进行数学建模,并选择高效的算法来求解,从而提升学生的素质和创新能力。课程内容涵盖数学模型的建立、求解算法的设计与效率估计、算法的优化方法、计算复杂度的估计、解决难解问题的策略等。课程分为算法设计与分析的基础部分及相关技术,后续课程中将进一步介绍计算复杂性内容。 课程内容安排: 1. **算法基础**:介绍算法的基本概念,例如伪码描述、时间复杂度函数,以及常用的复杂度分析方法。 2. **序列求和与递推方程**:讲解算法分析所需的数学基础,包括序列求和公式及递推方程的求解。 3. **分治算法的设计与分析**:探讨分治算法的基本思想、设计步骤、时间复杂度分析以及提升算法效率的方法。 4. **分治算法的典型应用**:展示如选择算法、卷积计算、快速傅里叶变换及平面点集凸包计算等成功案例。 5. **动态规划算法**:介绍动态规划的设计思想、同步分析方法,以及使用动态规划解决投资、背包问题等问题的技巧。 6. **动态规划算法的典型应用**:讨论动态规划在黑白图片存储、最大子段和计算及RNA序列比对等方面的应用。 7. **贪心法的设计**:阐述贪心法的设计思想及其证明方法,分析贪心策略的适用范围。 8. **贪心算法的典型应用**:包括哈夫曼算法、Prim和Kruskal算法,及Dijkstra算法在网络路由中的应用。 9. **回溯算法的设计思想**:介绍回溯算法的设计思路和适用条件,及运行时间估算的方法。 10. **回溯算法的典型应用**:展示利用分支限界技术提升搜索效率的实例,如最大团问题、货郎旅行和邮票设计等。 11. **期末考试**:对所学知识进行综合考核。 本课程为打下坚实的算法基础,并为后续深入学习其他计算复杂性内容做好准备。

课程大纲

Name:算法基础

Description:先通过几个典型的例子阐述算法设计与分析课程的学习内容及重要意义,接着介绍与算法有关的基本概念,如算法的伪码描述、时间复杂度函数的表示方法和一些常用的时间复杂度函数。

Name:序列求和与递推方程

Description:介绍在算法分析中所需要的一些数学基础知识,如与程序迭代有关的序列求和公式,在估计递归计算工作量时常用的递推方程及其求解方法等。

Name:分治算法的设计与分析

Description:分而治之是一种常用的算法设计技术。主要思想是将原始问题分解成若干个规模较小的独立的子问题,接着分别求解每个子问题,最后再将子问题的解综合以得到原始问题的解。通过本周的学习,你将了解分治算法的使用条件、主要的设计步骤、递归的实现技术、时间复杂度的分析方法、提高算法效率的途径等重要问题。

Name:分治算法的典型应用

Description:在对分治算法有了基本的认识以后,进一步介绍一些典型的分治算法的成功案例,包括各种选择算法、涉及信号降噪处理的卷积计算与快速傅立叶变换、涉及图形学的平面点集凸包的计算等。

Name:动态规划算法

Description:动态规划是另一种常用的算法设计技术。首先通过矩阵相乘的例子介绍动态规划算法的设计思想、主要步骤、分析方法、迭代实现与存储表示等。然后通过投资、背包、最长公共子序列等典型问题展现不同的动态规划算法在子问题划分与迭代计算时的特点和提高算法效率的技巧。

Name:动态规划算法的典型应用

Description:在对动态规划算法有了基本认识之后,进一步介绍运用动态规划算法的一些成功案例,如用于黑白图片存储的变位压缩算法、最大子段和的计算、最优二分检索树的构造以及生物信息学中的RNA二级结构预测和序列比对算法等。

Name:贪心法的设计

Description:贪心法是处理组合优化问题的常用算法。通过几个典型例子说明了贪心法的设计思想,同时重点阐述了贪心策略正确性的证明方法。针对某些不能保证对所有的输入都得到最优解的贪心策略讨论了其适用范围。

Name:贪心算法的典型应用

Description:给出了贪心法应用的一些成功案例,如与最优前缀码设计有关的哈夫曼算法、应用广泛的最小生成树Prim算法和Kruskal算法、在网络路由中寻找单源最短路径的Dijkstra算法等。

Name:回溯算法的设计思想

Description:回溯算法是一种基本的搜索技术,通过n后放置、0-1背包、货郎旅行、图的着色等问题介绍了回溯算法的设计思想、适用条件和实现方法,并给出了估计算法运行时间的一种抽样方法。

Name:回溯算法的典型应用

Description:介绍提升回溯算法搜索效率的分支限界技术,给出求解最大团、货郎、圆排列、邮票设计等回溯算法的典型应用实例。

Name:期末考试

Description:

课程评论(0条)

课程详情

课程教学目标 针对实际问题需求,进行数学建模并选择高效求解算法的训练,为提高学生的素质和创新能力打下必要的基础。主要内容涉及:面对实际问题建立数学模型、设计正确的求解算法、算法的效率估计、改进算法的途径、问题计算复杂度的估计、难解问题的确定和应对策略等等。本课程是算法课程的基础部分,主要涉及算法的设计、分析与改进途径,其他有关计算复杂性的内容将在后续课程中加以介绍。 课程内容安排 本课程的内容分成两大部分:算法的基础知识、通用算法设计技术与分析方法。 第一部分是算法基础知识,约占20%,主要介绍算法相关的基本概念和数学基础。比如,什么是算法的伪码描述?什么是算法最坏情况下和平均情况下的时间复杂度?算法时间复杂度函数的主要性质,算法复杂度估计中常用的数学方法,如序列求和及递推方程求解。 第二部分是通用的算法设计技术与分析方法,主要介绍分治策略、动态规划、贪心法、回溯与分支限界。主要介绍这些设计技术的使用条件、分析方法、改进途径,并给出一些重要的应用。

课程标签

0人关注该课程

主题相关的课程