Об этом курсе
10,882

Курс 4 из 7 в программе

100% онлайн

Начните сейчас и учитесь по собственному графику.

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.

Прибл. 20 часа на выполнение

Предполагаемая нагрузка: 每周4-8小时...

Китайский (упрощенное письмо)

Субтитры: Китайский (упрощенное письмо)

Курс 4 из 7 в программе

100% онлайн

Начните сейчас и учитесь по собственному графику.

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.

Прибл. 20 часа на выполнение

Предполагаемая нагрузка: 每周4-8小时...

Китайский (упрощенное письмо)

Субтитры: Китайский (упрощенное письмо)

Программа курса: что вы изучите

Неделя
1
24 минуты на завершение

欢迎加入我们!

好的算法是程序设计的灵魂!拥有了骄人战绩的你,在熟练掌握程序设计语言的同时,只有掌握了算法这个利器之后,才能在驾驭程序开发项目中出其不意、鬼斧神工!欢迎加入《算法基础》课程,为你的程序插上飞翔的翅膀!PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)...
2 видео ((всего 4 мин.)), 2 материалов для самостоятельного изучения
2 видео
欢迎加入算法基础课程1мин
2 материала для самостоятельного изучения
如何学好这门慕课?10мин
程序AC你必须知道的秘密10мин
Неделя
2
4 ч. на завершение

枚举

在日常生活中我们经常遇到这样的情景:数字密码最后一位忘记了,就从0~9逐个尝试;去提货点取快递,快递员检查完所有包裹才找到属于你的;警察列举出所有的嫌疑人才有可能发现真凶…以上在进行归纳推理时,逐个考察了某类事情的所有可能情况,并逐一进行检验,这种方法叫做枚举。枚举比较直观,易于理解,本模块将介绍枚举算法的基本数学模型和常用策略,从而解决通过公式推导、规则演绎的方法不能解决的问题。PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)...
3 видео ((всего 76 мин.)), 1 материал для самостоятельного изучения, 1 тест
3 видео
熄灯问题 35мин
讨厌的青蛙26мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
3
5 ч. на завершение

递归

递归调用是设计和描述算法的一种有力工具,尤其是在解决复杂问题时经常采用。它的基本思想是要解决某一问题A,可以先解决一个形式相同,但规模小一点的问题B。问题B如果解决了,那么问题A也就迎刃而解。有些问题使用传统的迭代算法是很难求解甚至无解的,而使用递归却可以很容易地解决。本模块将通过具体的例题介绍如何构造递归函数,如何设置递归终止的条件以及分析递归算法的复杂度。...
4 видео ((всего 97 мин.)), 1 материал для самостоятельного изучения, 1 тест
4 видео
小游戏 27мин
棋盘分割26мин
用栈替代递归25мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
4
5 ч. на завершение

动态规划(1)

通过上一模块的学习,你已经了解如何通过递归的办法解决问题,但是单纯的递归往往会导致子问题被重复计算,因此在解决某些问题的时候,效率会很低。而将一个问题分解为子问题递归求解,并且将中间结果保存以避免重复计算的方法就叫做“动态规划”。本模块将初步介绍对于特定的问题如何寻找子问题、定义问题的状态以及状态转移方程。...
3 видео ((всего 96 мин.)), 1 материал для самостоятельного изучения, 1 тест
3 видео
几个例题 33мин
灌溉草场(较难) 31мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
5
4 ч. на завершение

动态规划(2)

如何进行动态规划,没有一定之规,需要具体问题具体分析。本模块首先由典型的“最长上升子序列”引入,进一步展示几个较难的动规例题,深入探讨动态规划算法中状态的设计以及状态转移关系的构建。...
4 видео ((всего 71 мин.)), 1 материал для самостоятельного изучения, 1 тест
4 видео
方盒游戏15мин
美丽栅栏20мин
美丽栅栏(续)19мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
6
4 ч. на завершение

深度优先搜索(1)

想象我们在一座迷宫里,如何才能找到出口呢?最直观的方法是从入口开始沿着一条路一直走到底,如果遇到分叉路口就选择其中一条道路走下去,如果遇到死胡同就退回到上一个分叉路口,选择另一条道路走下去,如果遇到出口就成功走出迷宫了。这种尽量往深处走的做法即是深度优先搜索(深搜)。深搜算法编程简单,简洁易懂,空间需求也比较低,但是这种方法的时间复杂度往往是指数级的,如果不加以优化,时间效率无法忍受。本模块将通过实例继续讨论深度优先搜索算法中优化程序的基本方法“剪枝”,即在设计剪枝判断方法的基础上,避免一些不必要的遍历过程,从而提高算法效率。...
3 видео ((всего 73 мин.)), 1 материал для самостоятельного изучения, 1 тест
3 видео
深搜之寻路问题 15мин
深搜之拯救少林神棍 41мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
7
4 ч. на завершение

深度优先搜索(2)

本模块继续通过两道例题,强调了两种最通用的剪枝方法:可行性剪枝和最优性剪枝的应用。可行性剪枝即在寻找解的过程中,预判出从当前状态出发不可能找到解,从而不再从当前状态继续;最优性剪枝就是记录到目前为止找到的最优解,当发现正在探索的解其代价已经不小于最优解,或预测出其最终代价必将不小于最优解,则停止当前解的探索。...
2 видео ((всего 42 мин.)), 1 материал для самостоятельного изучения, 1 тест
2 видео
Sudoku10мин
生日蛋糕31мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
8
5 ч. на завершение

广度优先搜索

与深度优先搜索算法类似,广度优先搜索(广搜)也是常用的搜索图的算法。它的思想是从一个顶点开始,辐射状地优先遍历其周围较广的区域。一般可以用它做什么呢?一个最直观经典的例子就是走迷宫,从起点开始,找出到终点的最短路程,很多最短路径算法都是基于广搜的思想。广索的基本方法是使用队列存放已经扩展过的节点。本模块先以简单例题引入广搜的基本实现方法,然后再通过经典的"八数码"问题,进一步介绍状态表示、判重的节省时间和空间的技巧。...
4 видео ((всего 90 мин.)), 1 материал для самостоятельного изучения, 1 тест
4 видео
广搜入门24мин
广搜与八数码问题 29мин
广搜与八数码问题(续)22мин
八数码问题进一步讨论-双向广搜 13мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
9
4 ч. на завершение

二分与贪心

二分法是在有序或单调的区间中快速寻找答案的有效方法,当数据量很大适宜采用该方法。所谓贪心算法,即总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。但是,贪心算法对很多问题都能得到整体最优解。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。本模块将介绍二分与贪心这两个对很多问题都非常有效的算法策略。...
4 видео ((всего 70 мин.)), 1 материал для самостоятельного изучения, 1 тест
4 видео
烘晾衣服11мин
雷达安装问题15мин
誊抄书籍23мин
1 материал для самостоятельного изучения
课程Slides10мин
Неделя
10
3 ч. на завершение

期末考试

3个小时11道题目,这就是每年我们程序设计实习课程在校内的收官之作,让无数北大学生魂牵梦绕又各种怨念纠结的期末盛宴。你是不是准备好了呢?快来测测吧!也别忘了,搞定了基本算法并不代表着你作为程序员所向披靡啦,毕竟好的 程序=数据结构+算法。快去参加张铭老师的《数据结构基础》吧,你值得拥有!...
1 тест
Неделя
11
минуты на завершение

结束语

真的要把课程的接力棒传给张老师了,颇有些不舍!很高兴通过MOOC专项课程的方式结识不一样的你。希望我们的课程能带给你收获与思考,加油,你会是一位出色的程序员!...
1 видео ((всего мин.))
1 видео
4.8
Рецензии: 36Chevron Right

Лучшие рецензии

автор: ZWOct 4th 2018

It's a valuable experience and I learned a lot about algorithms, thanks you !

автор: ZCAug 10th 2017

Prestigious University and of course with technical professors.

Преподаватели

Avatar

Jiaying Liu 刘家瑛, Ph.D.

Associate Professor
Institute of Computer Science & Technology
Avatar

郭 炜

讲师
北京大学信息科学技术学院教学所

О Пекинский университет

Peking University is determined to make its education openly accessible to students in China and around the world. With over 3000 faculty members, Peking University offers excellence in teaching and learning. Founded in 1898, Peking University (PKU) was the first national comprehensive university in China. For the past 115 years, with its hundreds of thousands of outstanding alumni, Peking University has made prominent contributions in the humanities and sciences to further China's prosperity and progress....

О специализации ''程序设计与算法'

本专项课程旨在系统培养你的程序设计与编写能力。系列课程从计算机的基础知识讲起,无论你来自任何学科和行业背景,都能快速理解;同时我们又系统性地介绍了C程序设计,C++程序设计,算法基础,数据结构与算法相关的内容,各门课之间联系紧密,循序渐进,能够帮你奠定坚实的程序开发基础;课程全部配套在线编程测试,将有效地训练和提升你编写程序的实际动手能力。并通过结业实践项目为你提供应用程序设计解决复杂现实问题的锻炼,从而积累实际开发的经验。因此,我们希望本专项课程能够帮助你完成从仅了解基本的计算机知识到能够利用高质量的程序解决实际问题的转变。...
程序设计与算法

Часто задаваемые вопросы

  • Зарегистрировавшись на сертификацию, вы получите доступ ко всем видео, тестам и заданиям по программированию (если они предусмотрены). Задания по взаимной оценке сокурсниками можно сдавать и проверять только после начала сессии. Если вы проходите курс без оплаты, некоторые задания могут быть недоступны.

  • Записавшись на курс, вы получите доступ ко всем курсам в специализации, а также возможность получить сертификат о его прохождении. После успешного прохождения курса на странице ваших достижений появится электронный сертификат. Оттуда его можно распечатать или прикрепить к профилю LinkedIn. Просто ознакомиться с содержанием курса можно бесплатно.

Остались вопросы? Посетите Центр поддержки учащихся.