一个好的算法通常伴随着一套好的数据结构,这些数据结构可以让算法高效地处理数据。在本在线课程中,我们将讨论各种计算问题中常用的数据结构。您将学习如何在不同的编程语言中实现这些数据结构,并在编程作业中练习实现这些数据结构。这将帮助您了解数据结构的特定内置实现内部发生了什么,以及对它的期望是什么。本课将涉及的几个问题如下: 1.调整动态数组大小的好策略是什么?优先级队列在 C++、Java 和 Python 中是如何实现的?如何实现哈希表,使所有操作的摊销运行时间平均为 O(1)?保持二叉树平衡的好策略是什么?
了解顶级公司的员工如何掌握热门技能

积累特定领域的专业知识
- 向行业专家学习新概念
- 获得对主题或工具的基础理解
- 通过实践项目培养工作相关技能
- 获得可共享的职业证书

该课程共有6个模块
在本模块中,您将学习贯穿本课程其余部分的基本数据结构。 在本模块开始时,我们将详细介绍基本构件:数组和链表。在此基础上,我们将建立两个重要的数据结构:堆栈和队列。接下来,我们将学习树:举例说明树在计算机科学中的应用、实现方式以及遍历树的各种方法。完成本模块后,你将能够实现这些数据结构中的任何一种,并对操作的成本以及使用每种数据结构所涉及的权衡问题有一个扎实的了解。
涵盖的内容
7个视频7篇阅读材料1个作业1个编程作业
在本模块中,我们将讨论动态数组:一种在事先不知道需要多少元素的情况下使用数组的方法。在此,我们还将讨论摊销分析:一种确定操作序列中操作的摊销成本的方法。摊销分析通常用于分析算法的性能,当直接分析得出的结果不能令人满意时,摊销分析有助于证明算法实际上是高效的。摊销分析既用于动态数组分析,也将在本课程的最后用于分析 Splay 树。
涵盖的内容
5个视频1篇阅读材料1个作业
在本模块开始时,我们将考虑优先级队列,优先级队列可用于高效调度计算机操作系统或现实生活中的作业、排序庞大的文件(这是任何大数据处理算法最重要的组成部分)以及高效计算图中的最短路径(这是我们将在下一门课程中介绍的主题)。因此,优先队列在许多编程语言中都有内置实现,包括 C++、Java 和 Python。我们将看到,这些实现都基于一个美丽的想法,即在数组中存储一棵完整的二叉树,只需几行代码就能实现所有优先级队列方法。然后,我们将切换到不相邻集合数据结构,这种结构用于动态图连接和图像处理等。我们将再次看到简单而自然的想法是如何实现既易于编码又非常高效的。完成本模块后,你将能够从头开始高效地实现这两种数据结构。
涵盖的内容
15个视频6篇阅读材料3个作业1个编程作业1个插件
在本模块中,你将学习到非常强大且应用广泛的散列技术。它的应用包括编程语言的实现、文件系统、模式搜索、分布式键值存储等。你将学习如何实现数据结构,以存储和修改对象集以及从一类对象到另一类对象的映射。你会发现,简单的实现要么消耗大量内存,要么速度很慢,然后你将学习如何实现哈希表,它使用线性内存,平均工作速度为 O(1)!最后,你将了解散列函数如何用于现代分布式系统,以及如何用于优化 Dropbox、Google Drive 和 Yandex Disk 等服务的存储!
涵盖的内容
20个视频4篇阅读材料2个作业1个编程作业
在本模块中,我们将学习二叉搜索树,这是一种在动态变化的有序集合上进行搜索的数据结构。你将了解完成这项任务的许多困难,以及克服这些困难的方法。要做到这一点,你需要学习二叉搜索树的基本结构,如何在不破坏这种结构的情况下插入和删除,以及如何确保树保持平衡。
涵盖的内容
7个视频2篇阅读材料1个作业
在本模块中,我们将继续研究二叉搜索树。我们将研究一些非难应用。然后,我们将研究新型平衡搜索树--Splay 树。它们能动态地适应查询,在很多方面都是最优的。
涵盖的内容
4个视频2篇阅读材料1个作业1个编程作业
获得职业证书
将此证书添加到您的 LinkedIn 个人资料、简历或履历中。在社交媒体和绩效考核中分享。
位教师



从 算法 浏览更多内容
- 状态:免费试用
University of California San Diego
- 状态:免费试用
人们为什么选择 Coursera 来帮助自己实现职业发展




学生评论
5,547 条评论
- 5 stars
73.56%
- 4 stars
20.67%
- 3 stars
3.58%
- 2 stars
0.73%
- 1 star
1.44%
显示 3/5547 个
已于 Aug 6, 2019审阅
great course with challenging assignments, the problem with the course is the accent of some of the lecturers which make the lecture harder to follow also not enough examples in the lectures
已于 Aug 25, 2020审阅
Course is very knowledgeable and is deigned properly but the allocated time for assignments is too less than the time specified. Also some assignments need more support in the forum
已于 Nov 22, 2019审阅
The lectures and the reading material were great. The assignments are challenging and require thought before attempting. The forums were really useful when I got stuck with the assignments
常见问题
要获取课程资料、作业和证书,您需要在注册课程时购买证书体验。 您可以尝试免费试听,或申请资助。课程可能提供 "完整课程,无证书"。通过该选项,您可以查看所有课程资料,提交必要的评估,并获得最终成绩。这也意味着您无法购买证书体验。
注册课程后,您就可以访问专项课程中的所有课程,完成作业后还可以获得证书。您的电子证书将添加到您的 "成就 "页面--在那里,您可以打印证书或将其添加到您的 LinkedIn 个人资料中。
是的。在特定的学习课程中,如果您付不起注册费,可以申请助学金或奖学金。如果您选择的学习课程有助学金或奖学金,您可以在说明页面找到申请链接。
更多问题
提供助学金,