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

In this 1-hour long project-based course, you will learn how to calculate the Weighted Average Cost of Capital, calculate capital invested, finance charge, and NOPAT, and use financial statements... more
The Cloud Migration Factory on AWS solution uses a serverless architecture to coordinate and automate your organization\'s medium-scale to large-scale migrations to the Amazon Web Services (AWS)... more
This course is for anyone passionate about learning how to develop FPGA-accelerated applications with SDAccel! The more general purpose you are, the more flexible you are and the more kinds of... more
This specialization is intended for beginners to learn how to become proficient in Linux programming. It will prepare you for a role as an information technology professional by introducing you to... more
This specialization equips learners with in-depth knowledge of Agile principles and Scrum frameworks, focusing on backlog mastery, sprint planning, and continuous improvement. Learners will gain... more

CONTINUE SEARCH

FOLLOW COLLEGE PARENT CENTRAL