Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

# Algorithms (2019)

via Brilliant

### Overview

An algorithm is a step-by-step process to achieve some outcome. 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.

By the end of this course, you’ll know methods to measure and compare performance, and you’ll have mastered the fundamental problems in algorithms.

### Syllabus

• Algorithms: A quick introduction to what an algorithm is and how to measure its performance.
• Intro to Computation: As a computer scientist, you think about how hard it is to come up with the answer, not just about the answer itself.
• Using Recursion: With recursion, you can solve big problems by using solutions to small problems.
• Algorithms in the World: Clever algorithms may be needed for simple tasks, like helping new social network users pick a username.
• Sorting: A powerful tool for organizing data, from the basic intuition with insertion sort to practical algorithms like Mergesort.
• Introduction to Sorting: Why do computer scientists worry so much about sorting?
• Insertion Sort: Start slow! Insertion sort is a simple and effective way of sorting a small list of numbers.
• Mergesort: What's easier than sorting one big sequence? Creating a sorted sequence from two smaller sorted sequences!
• Quicksort: Quicksort, like Mergesort, uses the divide-and-conquer strategy to quickly sort arrays.
• Radix Sort: By sorting digits and characters—instead of numbers and words—radix sort can outpace all the rest.
• Graphs: Algorithms for these useful representations of connections among data.
• Introduction to Graphs: Graphs are a fundamental tool for representing the world around you on a computer.
• Trees: Trees are graphs without cycles, making them much easier to navigate.
• Breadth-First Search: Breadth-first search is a way of finding the shortest connections in a graph.
• Minimum Spanning Trees: Minimum spanning trees help you find the most helpful tree in a complicated graph.
• Strings: Strings are simple, but the algorithms to analyze them are not!
• Introduction to String Algorithms: Strings are sequences of characters.
• Substring Search Algorithms: Finding one string inside another string is tricker than it first appears!
• Deterministic Finite Automaton: Finite automata are an important tool for writing algorithms on strings.
• Knuth-Morris-Pratt Algorithm: The very best way to search for substrings.
• Dynamic Programming: Remembering what you already know to solve problems faster.
• Dynamic Programming Introduction: A little memory goes a long way towards solving problems quickly.
• Tiling Problem: How many ways can different tiles decorate a floor? Find out with dynamic programming.
• Binary Tree: The dynamic programming solution to a binary tree puzzle.
• Envelopes: Bring dynamic programming into the second dimension with this envelope fitting puzzle.

## Reviews

Start your review of Algorithms (2019)

### Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more. 