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:
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.
Learn how to implement your own sorting algorithm.
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.