Algorithm Complexity

Algorithms are at the center of almost any programming job. And particularly in the world of data engineering, using efficient algorithms is important enough that it's a common topic to be quizzed about in job interviews.

In this course, you'll learn more about how to assess and model the time complexity of algorithms — i.e., how fast they'll be. Then, you'll dig into some work modeling their space complexity — how much memory they'll require — and learn about how memory can often be traded for speed.

At the end of the course, you'll be asked to put together what you've learned in a guided project that tasks you with building indexes for a CSV using dictionaries.

By the end of the course, you'll know how to:

  • Analyze the time complexity of an algorithm.
  • Analyze the space complexity of an algorithm.
  • Design algorithms that are optimized to your use-case.

Learn by coding!

Get started today.

By creating an account you agree to accept our terms of use and privacy policy.

Learn to analyze the time and space complexity of algorithms:

Time Complexity of Algorithms

Learn to measure and model the execution time of an algorithm.

Constant Time Complexity

Learn more about how computers manage memory and how it affects speed.

Logarithmic Time Complexity

Learn about logarithms and logarithmic complexity.

Sorting Algorithms

Learn how to implement your own sorting algorithm.

Space Complexity

Learn how to evaluate the space complexity of an algorithm.

Guided Project: Building Fast Queries on a CSV

Apply your new knowledge to build indexes for a CSV using dictionaries.