|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/the-essential-algorithms-and-data-structures/
课程评论:没有评论
课程名称:基本算法与数据结构 课程概述:想象一下,你走进办公室,老板对你说:“我刚刚得到一个包含20亿个数字的列表,你能尽快帮我排序吗?”你可能会感到震惊,不知道从哪里开始解决这个问题。你是试图手动完成,还是有更好的方法呢?本课程是Udemy上关于算法与数据结构的最全面的课程,我们将一起学习如何解决这些问题以及更复杂的问题。算法是解决类型特定问题的有效方法,它们可以在数据中以可预测的方式工作。比如排序算法可以用来排序10个值或10亿个值,而无需进行任何修改。其他算法则允许我们高效地搜索数据或找到连接图上多个点的最低成本选项。算法就像解决程序中问题的蓝图。 数据结构是存储数据的独特方式,专门优化某些情况。像优先队列这样的数据结构能够模拟CPU处理请求的方式,或者高效地建模城市和航班之间的连接。选择合适的数据结构可以使程序比选择错误的数据结构快上数百万倍。数据结构就像编程的电动工具,使我们的程序速度大幅提升。 在这个课程中,我们将结合数据结构与算法,形成强大的工具库,帮助你解决代码中出现的问题。我们首先讨论时间复杂度,以及如何用它分析算法。接着,我们覆盖在面试中最重要的算法,并讨论如何完美地回答常见面试问题。然后,我们转向如何根据初始数据集进行高效搜索。此外,课程还覆盖了八种最重要的排序算法,并讨论在何时使用它们。之后,我们讨论几乎所有数据结构所需的基础知识,如泛型和递归。 接着,我们重点讲解每个强大的程序员必须掌握的基本数据结构,如映射和集合。然后详细介绍三种最重要的树数据结构(包含二叉搜索树、红黑树和AVL树)。最后,我们的讨论将围绕哈希和图展开,这是计算机科学中更高阶方法的关键。 与市场上其他专注于理论的课程不同,本课程会强调能够实际实现我们所覆盖的算法和数据结构。我们将讨论如何根据你的情况修改算法或数据结构,并始终提供帮助理解算法或数据结构的伪代码。此外,我们还详细介绍理论,重点理解数据结构为何高效或算法方法的细节,以便你能在你选择的语言中实现它。我们将采用基于Java的方式讨论算法的实现,但这并不要求你必须了解Java,因为Java的属性与其他主要语言如C++或Python几乎相同。如果你有任何问题,可以依赖我及时的沟通。我会在24小时内回复问题,并努力确保每位学生的满意。如果你在任何时候有问题,我的邮箱和消息箱24/7开放!我希望你像我一样期待踏上计算机科学中最有趣的部分的旅程。可以说,一旦我了解了算法和数据结构,我惊喜地发现我能解决许多新问题,并流利地理解专业级的编程讨论。如果你想从一个普通的编程学生成长为一名真正的软件工程师,那么加入成千上万满意的学生,今天就报名吧!
Imagine you walk into work and your boss says, "I just got a list of 2 billion numbers, can you sort them for me as soon as possible?"You might be shocked and wonder where to even start the problem. Do you try and do it all by hand and spend the next couple years trying to sort even a small fraction of the values? Or is there some better way...The Essential Algorithms and Data Structures is the most comprehensive course on the topic on Udemy and together we will learn how to solve problems like these and even more complicated problems. Algorithms are a guaranteed way of solving a type of problem that works in a predictable fashion with the data. Algorithms like sorting algorithms can be used to sort 10 values or a billion values and won't need any modifications to work with either set. Other algorithms allow us to efficiently search a set of data or find the lowest cost option to connect a series of points on a graph. Algorithms are like blueprints that we use to solve problems in our programs.Data structures are unique ways of storing data that are optimized for certain situations. Data structures like a priority queue allow us to model how a CPU processes requests, or how to efficiently model a set of cities and interconnecting flights. Choosing a good data structure to store data can make programs millions of times faster than a bad choice. Data structures are like the power tools of programming that let us drastically speed up our programs.In this course we're going to combine data structures with algorithms to create a powerful arsenal you can use to solve whatever problems show up in your code. We start by discussing time complexity and how we use it to analyze algorithms. We then cover the most important algorithms for interviews and discuss how to perfectly answer common interview questions. We then shift our focus to being able to search efficiently depending on the starting set of data. In addition, we cover the eight most essential algorithms for sorting and discuses when to use each of them. After that, we cover fundamentals for data structures like generics and recursions that are essential for almost all data structures. Then, we shift our focus to the essential data structures like maps and sets that every powerful programmer is expected to have mastered. Next, we go into detail with the three most important types of trees (Binary Search Trees, Red-Black Trees, and AVL Trees). Finally, we wrap up our discussions with hashing and graphs, which are essential to higher-order approaches for computer science.While other courses on the market focus entirely on theory we will place a major emphasis on being able to actually implement the algorithms and data structures we cover. We'll go over how to modify an algorithm or data structure for your situations and will always be looking at pseudo code that helps us understand how an algorithm or data structure works. In addition, we always cover the theory in detail and focus on understanding how and why a data structure is efficient or the details of an algorithms approach, so you can implement it in your language of choice. We will take a Java-based approach for our discussions of how to implement an algorithm but this doesn't mean you have to know Java. Java is a generic style language whose attributes are almost identical to other major languages like C++ or Python. If you have any questions you can depend on prompt communication from me. I pride myself on responding to questions within 24 hours and work hard to ensure that each student is satisfied. If you have any questions at any time my email and message box are open 24/7!I hope you're as excited as I am to begin this journey through the most interesting parts of Computer Science. Personally I can say that once I learned about algorithms and data structures I was pleasantly surprised with how many new problems I could solve and how fluently I could understand professional level discussions of programming. If you want to go from being a simple programming student to a true software engineer, then join the tens of thousands of satisfied students and enroll today!