Back to all courses

# Algorithms (2019)

## This Brilliant course is retiring soon. Check out our new course: Algorithm Fundamentals!

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.

20

175+
1. 1

### Algorithms

A quick introduction to what an algorithm is and how to measure its performance.

1. #### 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.

2. #### Using Recursion

With recursion, you can solve big problems by using solutions to small problems.

3. #### Algorithms in the World

Clever algorithms may be needed for simple tasks, like helping new social network users pick a username.

2. 2

### Sorting

A powerful tool for organizing data, from the basic intuition with insertion sort to practical algorithms like Mergesort.

1. Included with

#### Introduction to Sorting

Why do computer scientists worry so much about sorting?

2. Included with

#### Insertion Sort

Start slow! Insertion sort is a simple and effective way of sorting a small list of numbers.

3. Included with

#### Mergesort

What's easier than sorting one big sequence? Creating a sorted sequence from two smaller sorted sequences!

4. Included with

#### Quicksort

Quicksort, like Mergesort, uses the divide-and-conquer strategy to quickly sort arrays.

3. 3

### Graphs

Algorithms for these useful representations of connections among data.

1. Included with

#### Introduction to Graphs

Graphs are a fundamental tool for representing the world around you on a computer.

2. Included with

#### Trees

Trees are graphs without cycles, making them much easier to navigate.

3. Included with

Breadth-first search is a way of finding the shortest connections in a graph.

4. Included with

4. 4

### Strings

Strings are simple, but the algorithms to analyze them are not!

1. Included with

#### Introduction to String Algorithms

Strings are sequences of characters.

2. Included with

#### Substring Search Algorithms

Finding one string inside another string is tricker than it first appears!

3. Included with

#### Deterministic Finite Automaton

Finite automata are an important tool for writing algorithms on strings.

4. Included with

#### Knuth-Morris-Pratt Algorithm

The very best way to search for substrings.

5. 5

### Dynamic Programming

Remembering what you already know to solve problems faster.

1. Included with

#### Dynamic Programming Introduction

A little memory goes a long way towards solving problems quickly.

2. Included with

#### Tiling Problem

How many ways can different tiles decorate a floor? Find out with dynamic programming.

3. Included with