课程信息

241,361 次近期查看

学生职业成果

18%

完成这些课程后已开始新的职业生涯

22%

通过此课程获得实实在在的工作福利

16%

加薪或升职
100% 在线
立即开始,按照自己的计划学习。
可灵活调整截止日期
根据您的日程表重置截止日期。
中级
完成时间大约为58 小时
英语(English)
字幕:英语(English), 韩语

您将获得的技能

GraphsData StructureAlgorithmsData Compression

学生职业成果

18%

完成这些课程后已开始新的职业生涯

22%

通过此课程获得实实在在的工作福利

16%

加薪或升职
100% 在线
立即开始,按照自己的计划学习。
可灵活调整截止日期
根据您的日程表重置截止日期。
中级
完成时间大约为58 小时
英语(English)
字幕:英语(English), 韩语

提供方

普林斯顿大学 徽标

普林斯顿大学

教学大纲 - 您将从这门课程中学到什么

内容评分Thumbs Up96%(4,246 个评分)Info
1

1

完成时间为 10 分钟

Introduction

完成时间为 10 分钟
1 个视频 (总计 9 分钟), 2 个阅读材料
1 个视频
2 个阅读材料
Welcome to Algorithms, Part II1分钟
Lecture Slides
完成时间为 2 小时

Undirected Graphs

完成时间为 2 小时
6 个视频 (总计 98 分钟), 2 个阅读材料, 1 个测验
6 个视频
Graph API14分钟
Depth-First Search26分钟
Breadth-First Search13分钟
Connected Components18分钟
Graph Challenges14分钟
2 个阅读材料
Overview1分钟
Lecture Slides
1 个练习
Interview Questions: Undirected Graphs (ungraded)6分钟
完成时间为 9 小时

Directed Graphs

完成时间为 9 小时
5 个视频 (总计 68 分钟), 1 个阅读材料, 2 个测验
5 个视频
Digraph API4分钟
Digraph Search20分钟
Topological Sort 12分钟
Strong Components20分钟
1 个阅读材料
Lecture Slides
1 个练习
Interview Questions: Directed Graphs (ungraded)6分钟
2

2

完成时间为 2 小时

Minimum Spanning Trees

完成时间为 2 小时
6 个视频 (总计 85 分钟), 2 个阅读材料, 1 个测验
6 个视频
Greedy Algorithm12分钟
Edge-Weighted Graph API11分钟
Kruskal's Algorithm12分钟
Prim's Algorithm33分钟
MST Context10分钟
2 个阅读材料
Overview1分钟
Lecture Slides
1 个练习
Interview Questions: Minimum Spanning Trees (ungraded)6分钟
完成时间为 10 小时

Shortest Paths

完成时间为 10 小时
5 个视频 (总计 85 分钟), 1 个阅读材料, 2 个测验
5 个视频
Shortest Path Properties14分钟
Dijkstra's Algorithm18分钟
Edge-Weighted DAGs19分钟
Negative Weights21分钟
1 个阅读材料
Lecture Slides
1 个练习
Interview Questions: Shortest Paths (ungraded)6分钟
3

3

完成时间为 7 小时

Maximum Flow and Minimum Cut

完成时间为 7 小时
6 个视频 (总计 72 分钟), 2 个阅读材料, 2 个测验
6 个视频
Ford–Fulkerson Algorithm6分钟
Maxflow–Mincut Theorem9分钟
Running Time Analysis8分钟
Java Implementation14分钟
Maxflow Applications22分钟
2 个阅读材料
Overview
Lecture Slides
1 个练习
Interview Questions: Maximum Flow (ungraded)6分钟
完成时间为 2 小时

Radix Sorts

完成时间为 2 小时
6 个视频 (总计 85 分钟), 1 个阅读材料, 1 个测验
6 个视频
Key-Indexed Counting12分钟
LSD Radix Sort15分钟
MSD Radix Sort13分钟
3-way Radix Quicksort7分钟
Suffix Arrays19分钟
1 个阅读材料
Lecture Slides
1 个练习
Interview Questions: Radix Sorts (ungraded)6分钟
4

4

完成时间为 2 小时

Tries

完成时间为 2 小时
3 个视频 (总计 75 分钟), 2 个阅读材料, 1 个测验
3 个视频
R-way Tries32分钟
Ternary Search Tries22分钟
Character-Based Operations20分钟
2 个阅读材料
Overview10分钟
Lecture Slides
1 个练习
Interview Questions: Tries (ungraded)6分钟
完成时间为 10 小时

Substring Search

完成时间为 10 小时
5 个视频 (总计 75 分钟), 1 个阅读材料, 2 个测验
5 个视频
Brute-Force Substring Search10分钟
Knuth–Morris–Pratt33分钟
Boyer–Moore8分钟
Rabin–Karp16分钟
1 个阅读材料
Lecture Slides10分钟
1 个练习
Interview Questions: Substring Search (ungraded)6分钟

审阅

来自算法,第二部分的热门评论

查看所有评论

常见问题

  • 讲座和作业的访问权限取决于您的注册类型。如果您以旁听模式参加课程,则可以免费查看大多数课程资料。要访问评分作业并获得证书,您需要在旁听期间或之后购买证书体验。如果看不到旁听选项:

    • 课程可能不提供旁听选项。您可以尝试免费试用,也可以申请助学金。
    • 课程可能会改为提供'完整课程,没有证书'。通过此选项,您可以查看所有课程材料、提交所要求的作业,以及获得最终成绩。这也意味着您将无法购买证书体验。
  • Once you enroll, you’ll have access to all videos and programming assignments.

  • No. All features of this course are available for free.

  • No. As per Princeton University policy, no certificates, credentials, or reports are awarded in connection with this course.

  • Our central thesis is that algorithms are best understood by implementing and testing them. Our use of Java is essentially expository, and we shy away from exotic language features, so we expect you would be able to adapt our code to your favorite language. However, we require that you submit the programming assignments in Java.

  • Part II focuses on graph and string-processing algorithms. Topics include depth-first search, breadth-first search, topological sort, Kosaraju−Sharir, Kruskal, Prim, Dijkistra, Bellman−Ford, Ford−Fulkerson, LSD radix sort, MSD radix sort, 3-way radix quicksort, multiway tries, ternary search tries, Knuth−Morris−Pratt, Boyer−Moore, Rabin−Karp, regular expression matching, run-length coding, Huffman coding, LZW compression, and the Burrows−Wheeler transform.

    Part I focuses on elementary data structures, sorting, and searching. Topics include union-find, binary search, stacks, queues, bags, insertion sort, selection sort, shellsort, quicksort, 3-way quicksort, mergesort, heapsort, binary heaps, binary search trees, red−black trees, separate-chaining and linear-probing hash tables, Graham scan, and kd-trees.

  • Weekly programming assignments and interview questions.

    The programming assignments involve either implementing algorithms and data structures (graph algorithms, tries, and the Burrows–Wheeler transform) or applying algorithms and data structures to an interesting domain (computer graphics, computational linguistics, and data compression). The assignments are evaluated using a sophisticated autograder that provides detailed feedback about style, correctness, and efficiency.

    The interview questions are similar to those that you might find at a technical job interview. They are optional and not graded.

  • This course is for anyone using a computer to address large problems (and therefore needing efficient algorithms). At Princeton, over 25% of all students take the course, including people majoring in engineering, biology, physics, chemistry, economics, and many other fields, not just computer science.

  • The two courses are complementary. This one is essentially a programming course that concentrates on developing code; that one is essentially a math course that concentrates on understanding proofs. This course is about learning algorithms in the context of implementing and testing them in practical applications; that one is about learning algorithms in the context of developing mathematical models that help explain why they are efficient. In typical computer science curriculums, a course like this one is taken by first- and second-year students and a course like that one is taken by juniors and seniors.

  • 此课程不提供大学学分,但部分大学可能会选择接受课程证书作为学分。查看您的合作院校,了解详情。Coursera 上的在线学位Mastertrack™ 证书提供获得大学学分的机会。

还有其他问题吗?请访问 学生帮助中心