数据结构与算法深入学习_我最喜欢的免费课程,用于深入学习数据结构和算法...

数据结构与算法深入学习

by javinpaul

由javinpaul

Data structures and algorithms are some of the most essential topics for programmers, both to get a job and to do well on a job. Good knowledge of data structures and algorithms is the foundation of writing good code.

数据结构和算法对于程序员来说是最重要的主题,既要找到一份工作,又要做好一份工作。 精通数据结构和算法是编写良好代码的基础。

If you are familiar with essential data structures e.g. array, string, linked list, tree, map, and advanced data structures like tries, and self-balanced trees like AVL trees, etc., you’ll know when to use which data structure and compute the CPU and memory cost of your code.

如果您熟悉基本的数据结构,例如数组字符串链表 ,树,映射以及高级数据结构(如try)和自平衡树(如AVL树)等,您将知道何时使用哪种数据结构和计算代码的CPU和内存成本。

Even though you don’t need to write your own array, linked list, or hashtable, given every major programming SDK provides them, e.g. JDK or C++ STL library, you will need to understand them so that you can use them in the right place.

即使您不需要编写自己的数组,链接列表或哈希表,但由于每个主要的编程SDK都提供了它们,例如JDK或C ++ STL库,您仍需要了解它们,以便可以在正确的位置使用它们。

Using the right data structure can drastically improve the performance of an algorithm.

使用正确的数据结构可以大大提高算法的性能。

Ideally, we should all learn data structures and algorithms in our schools and colleges, but it’s rarely ever covered. Most of the programmers, including myself, only get introduced to a data structure in our computer science courses, but we didn’t really learn the real-world importance of them, and that’s why we didn’t understand them better.

理想情况下,我们所有人都应该在学校和学院学习数据结构算法 ,但很少涉及到它。 在我们的计算机科学课程中,包括我在内的大多数程序员都只介绍了一种数据结构,但是我们并没有真正了解它们在现实世界中的重要性,因此我们无法更好地理解它们。

For us, they are just the algorithms and data structures e.g. some concept, not a tool that you can use to write good programs. We didn’t know that Facebook would use them to store our details or that Google would use them to store web pages and link to search queries.

对我们来说,它们只是算法和数据结构,例如某些概念,而不是可用于编写优质程序的工具。 我们不知道Facebook将使用它们来存储我们的详细信息,也不知道Google将使用它们来存储网页并链接到搜索查询。

Anyway, it’s never too late.
无论如何,永远不会太晚。

If you think that your data structure knowledge is not up to par or you want to improve your data structure knowledge, then you have come to the right place.

如果您认为自己的数据结构知识不尽人意,或者想提高自己的数据结构知识,那么您来对地方了。

Earlier, I shared some free books to learn data structures and algorithms, and in this article, you will learn about some of the best data structure and algorithm courses that are available for free online.

之前,我分享了一些免费的书籍来学习数据结构和算法 ,在本文中,您将学习一些可在线免费获得的最佳数据结构和算法课程。

免费课程,学习数据结构和算法 (Free Courses to Learn Data Structures and Algorithms)

Here is my list of some of the best courses to learn data structures and algorithms, which are also free. Many programmers think that free resources are not good, which is not true.

这是我列出的一些学习数据结构和算法的最佳课程的列表,它们也是免费的。 许多程序员认为自由资源不好,这是不对的。

Even though they sometimes don’t match the quality and coverage of paid resources, they are, in fact, the best resources to start with.

尽管有时它们与付费资源的质量和覆盖范围不匹配,但实际上它们是一开始的最佳资源。

You can use these courses to familiarize yourself with the essential data structures and learn some basics.

您可以使用这些课程来熟悉基本的数据结构并学习一些基础知识。

Some of them are particularly good from an interview point of view so you can use them alongside any book you are using to prepare for your programming job interview.

从面试的角度来看,其中一些特别好,因此您可以将它们与准备用于编程工作面试的任何书籍一起使用。

1.易于高级的数据结构 (1. Easy to Advanced Data Structures)

This is one of the free data structure and algorithm courses from Udemy for all those people who want to learn data structures from an absolute basic to advanced level.

这是Udemy针对所有想要从绝对基础到高级学习数据结构的人们提供的免费数据结构和算法课程之一。

This course doesn’t expect you to have any prior knowledge of data structures, but a basic prior knowledge of Java is helpful.

课程并不期望您具有数据结构的任何先验知识,但是对Java的基本先验知识会有所帮助。

The author @William Fiset is a Software Engineer at Google and a former ACM-ICPC world finalist and has excellent computer programming and problem-solving skills.

@William Fiset是Google的软件工程师,曾是ACM-ICPC的世界决赛入围者 ,具有出色的计算机编程和解决问题的能力。

Talking about social proof, the course has more than 25K students and an average 4.1 ratings from 683 rating which is impressive.

谈到社会证明,该课程有超过25,000名学生,平均683评分中的4.1评分令人印象深刻。

In short, it’s a complete guide to learning everything there is to know about data structures.

简而言之,它是学习有关数据结构的所有知识的完整指南。

This is also an ideal course for computer science students and working software professionals who want to learn data structures and algorithms from an interview perspective.

对于希望从面试角度学习数据结构和算法的计算机科学专业的学生和工作软件专业人员来说,这也是一门理想的课程。

So, if you are looking to get a job with product-based companies like Amazon, Google, Microsoft, or Facebook, you can use this course to kick-start your preparation.

因此,如果您希望在像AmazonGoogleMicrosoft或Facebook这样的基于产品的公司找到工作,则可以使用本课程来开始您的准备工作。

2. C语言中的数据结构概念 (2. Data Structure Concepts in C)

This is another free, online algorithm and data structure training course, which aims to teach basic data structures in computer programming.

这是另一种免费的在线算法和数据结构培训课程,旨在教授计算机编程中的基本数据结构。

The data structures taught in the course include Stack, Queue, and Linked List using the C programming language.

本课程中讲授的数据结构包括使用C编程语言的StackQueueLinked List

The primary goal of this course is to make students and software engineers visualize how different data structures work.

课程的主要目的是使学生和软件工程师形象地了解不同的数据结构如何工作。

This is not an exhaustive course, but you will learn about Stack, Queue, and Linked List.

这不是一门详尽的课程,但是您将了解Stack ,Queue和Linked List

In short, it is a great course for programmers new to data structures and those who have just learned a programming language and want to learn the basics of how data structures work.

简而言之,对于刚接触数据结构的程序员以及刚刚学习编程语言并想了解数据结构工作原理的人员来说,这是一门很棒的课程。

3.算法第1部分-Coursera (3. Algorithms Part 1 - Coursera)

This is the first part of a two-part series of courses covering algorithms and data structures on Courera by Robert Sedgewick.

这是由Robert Sedgewick撰写的关于Courera的算法和数据结构两部分系列课程的第一部分

In this part, you will learn essential data structures like linked lists, stacks, queues, binary trees, and hash tables, and searching and sorting algorithms like binary search, quicksort, mergesort, insertion sort etc.

在这一部分中,您将学习基本数据结构,例如链表堆栈 ,队列, 二进制树哈希表 ,以及搜索和排序算法,例如二进制搜索快速排序合并 排序插入排序等。

You will also learn about core data structures and algorithms used in everyday applications and understand the trade-offs involved with choosing each data structure along with traversal, retrieval, and update algorithms.

您还将了解日常应用程序中使用的核心数据结构和算法,并了解选择每个数据结构以及遍历 ,检索和更新算法时所要进行的权衡。

All the features of this course are available for free but it does not offer a certificate upon completion.

本课程的所有功能均免费提供,但完成后不提供证书。

4)算法-第2部分 (4) Algorithms - Part 2)

This is the second part of a two-part series of free online Coursera courses covering data structures and algorithms by Robert Sedgewick and Kevin Wayne, both are professors of Computer Science.

这是由两部分都是计算机科学教授的Robert Sedgewick和Kevin Wayne所组成的两部分免费在线Coursera课程的第二部分 ,涵盖了数据结构和算法。

Robert Sedgewick is also the author of Algorithms 4th Edition book, one of the most popular books on Algorithms for Java developers.

Robert Sedgewick还是《 算法第四版 》一书的作者,该书是针对Java开发人员的最流行的算法书籍之一。

In this part, you will learn about the graph- and string-processing algorithms.

这一部分中 ,您将了解图形和字符串处理算法。

You will also learn some advanced data structures and algorithms used in application development.

您还将学习一些在应用程序开发中使用的高级数据结构和算法。

Talking about the social proof, both Algorithms Part 1 and Algorithms Part 2 are highly recommended courses and have impressive reviews and ratings.

谈到社会证明, 算法第1部分算法第2部分都是强烈推荐的课程,并且具有令人印象深刻的评论和评分。

5. Java中的数据结构 (5. Data Structure in Java)

This is an introductory online course on data structures, algorithms, and complexity analyses. It will teach you design, implementation, and analyses of basic data structures using the Java language.

这是有关数据结构 ,算法和复杂性分析的在线入门课程 。 它将教您使用Java语言设计,实现和分析基本数据结构。

The best part of this course is the number of practical examples and that it focuses on intuition rather than formulas and mathematical proofs.

本课程最好的部分是大量的实例,它着重于直觉而不是公式和数学证明。

The course provides a good introduction for “complexity analysis,” which makes it possible to spot a poorly (and a great) performing program, even without the need for executing it.

课程很好地介绍了“复杂性分析”,即使不需要执行它,也可以发现性能不佳(和出色)的程序。

That’s all about some of the free data structure and algorithm courses available online. You can use these courses to learn data structures and algorithms at your own pace.

这就是在线上提供的一些免费数据结构和算法课程的全部内容。 您可以按照自己的进度使用这些课程来学习数据结构和算法。

They may not all be comprehensive, but they do provide a good introduction. Once you go through these courses, you can pick a good book like Introduction to Algorithms to further supplement your knowledge.

它们可能并不全面,但是确实提供了很好的介绍。 学习完这些课程后,您可以选择一本好书,例如《算法简介》 进一步补充您的知识。

进阶学习 (Further Learning)
结束语 (Closing Notes)

Thanks. You made it to the end of the article. Good luck with your programming Journey! It’s certainly not going to be easy, but by following these courses, you are one step closer to mastering data structure and algorithms than others.

谢谢。 您已完成本文的结尾。 祝您编程旅途愉快! 当然这并不容易,但是通过学习这些课程,您将比其他人更接近掌握数据结构和算法。

If you like this article, then please share with your friends and colleagues, and don’t forget to follow javinpaul on Twitter!

如果您喜欢这篇文章,请与您的朋友和同事分享,不要忘记在Twitter上关注javinpaul

翻译自: https://www.freecodecamp.org/news/these-are-the-best-free-courses-to-learn-data-structures-and-algorithms-in-depth-4d52f0d6b35a/

数据结构与算法深入学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值