Data Structures
About this Course
A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this online course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures. A few examples of questions that we are going to cover in this class are the following: 1. What is a good strategy of resizing a dynamic array? 2. How priority queues are implemented in C++, Java, and Python? 3. How to implement a hash table so that the amortized running time of all operations is O(1) on average? 4. What are good strategies to keep a binary tree balanced? You will also learn how services like Dropbox manage to upload some large files instantly and to save a lot of storage space!Created by: University of California San Diego

Related Online Courses
Dalam kursus ini, Anda akan mempelajari bagaimana Gemini, kolaborator yang didukung AI generatif dari Google Cloud, membantu administrator menyediakan infrastruktur. Anda akan mempelajari cara... more
In this course, you will be introduced to AWS Elastic Beanstalk. This course will outline the capabilities and functionality of Elastic Beanstalk. You will learn how to deploy, monitor, and update... more
This Specialization is intended for engineers seeking to acquire fundamental understanding of quantum mechanics which are the basis of modern electrical, mechanical and quantum engineering. Through... more
This Specialization provides a full course in Digital Signal Processing, with a focus on audio processing and data transmission. You will start from the basic concepts of discrete-time signals and... more
This course provides you the opportunity to examine the features of the Linux operating system. You will also focus on the management of the operating system. The career skills acquired in this... more