An algorithm is a step-by-step process to achieve some outcome. Consider the problem of finding the fastest driving route between two places. Not only are there many possible routes to check, but there are changing parameters such as real-time traffic too. How would you handle this efficiently?
When algorithms involve a large amount of input data, complex manipulation, or both, we need to construct clever algorithms that a computer can work through quickly. We'll also need methods to measure and compare performance. This course will help you master these fundamental problems in algorithms.
A quick introduction to what an algorithm is and how to measure its performance.
A powerful tool for organizing data, from the basic intuition with insertion sort to practical algorithms like Mergesort.
Algorithms for these useful representations of connections among data.
Strings are simple, but the algorithms to analyze them are not!
Remembering what you already know to solve problems faster.