---
title: Algorithm Complexity
description: This topic covers the mathematical analysis of computer algorithms, focusing on time and space complexity. Learners will understand how to use Big O notation to evaluate algorithm efficiency, compare performance, and optimize code for large-scale data.
category: programming-tech
subcategory: algorithms-and-data-structures
difficulty: beginner, intermediate, advanced
url: /subject/algorithm-complexity
---

# Algorithm Complexity

This topic covers the mathematical analysis of computer algorithms, focusing on time and space complexity. Learners will understand how to use Big O notation to evaluate algorithm efficiency, compare performance, and optimize code for large-scale data.

## Where to start

Start with Algorithms, Part I, a free Coursera course on elementary data structures, sorting and searching that emphasises analysing the performance of Java implementations. If you only use one resource, make it Introduction to Algorithms (MIT 6.006) by Erik Demaine, Jason Ku and Justin Solomon, whose lectures, notes and problem sets with solutions teach asymptotic analysis. Keep bigocheatsheet.com to hand as a quick reference.

## Available Resources

2 Videos • 4 Courses • 3 Websites

## Videos

### 1. Big O Notations

Derek Banas explains how algorithm running time grows with input size, walking through constant, linear, quadratic, logarithmic and linearithmic examples in Java code. Viewers finish able to read Big O notation and classify simple loops and sorting routines.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.youtube.com/watch?v=V6mKVRU1evU

**Tags:** big-o-notation, time-complexity, algorithm-analysis, java

### 2. Algorithms Course by Abdul Bari

Opening lecture of Abdul Bari's algorithms series, distinguishing an algorithm from a program, listing the properties every algorithm must satisfy, and outlining the time and space criteria used to compare competing solutions to the same problem.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.youtube.com/watch?v=0IAPZzGSbME

**Tags:** algorithms, algorithm-analysis, time-complexity, lecture-series, introductory

## Courses

### 1. Introduction to Algorithms (MIT 6.006)

**Author:** Erik Demaine, Jason Ku, Justin Solomon

Modeling computational problems and solving them with core algorithms and data structures: sorting, hashing, binary trees, heaps, graph search, shortest paths and dynamic programming. 32 lecture videos, notes, problem sets and exams with solutions teach asymptotic analysis and algorithm design.

**Difficulty:** Intermediate | **Price:** Free

**Link:** https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/

**Tags:** data-structures, asymptotic-analysis, graph-algorithms, dynamic-programming, sorting

### 2. Algorithmic Toolbox

This online course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.coursera.org/learn/algorithmic-toolbox

**Tags:** algorithms, dynamic-programming, greedy-algorithms, divide-and-conquer, sorting

### 3. Algorithms, Part I

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

All the features of this course are available for free. People who are interested in digging deeper into the content may wish to obtain the textbook Algorithms, Fourth Edition (upon which the course is based) or visit the website algs4.cs.princeton.edu for a wealth of additional material.

This course does not offer a certificate upon completion.

**Difficulty:** Beginner | **Language:** English | **Duration:** 6 weeks of study, 6–10 hours per week. | **Price:** Free

**Link:** https://www.coursera.org/learn/algorithms-part1

**Tags:** courses, technology-computer-science, algorithms

### 4. Advanced Graph Algorithms

Strengthen your skills in algorithmics and graph theory, and gain experience in programming in Python along the way.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://www.edx.org/learn/python/imt-advanced-algorithmics-and-graph-theory-with-python

**Tags:** courses, technology-computer-science, algorithms

## Websites

### 1. Complexity Zoo

Wiki catalogue of over five hundred computational complexity classes, each with a formal definition, known inclusions and references. Useful for checking what a class such as BPP or PH means and how it relates to others.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://complexityzoo.net/Complexity_Zoo

**Tags:** complexity classes, computational complexity, reference, wiki

### 2. Visualgo

Interactive visualizations of data structures and algorithms built by Steven Halim at the National University of Singapore, animating sorting, trees, graphs, and shortest paths step by step so learners can trace how each algorithm changes state.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://visualgo.net/en

**Tags:** algorithm-visualization, data-structures, sorting, graph-algorithms, interactive

### 3. bigocheatsheet.com

Big O Cheat Sheet is a quick-reference guide that lists Big-O time and space complexities for common data structures and algorithms. It provides concise, table-form lookup for operations across arrays, linked lists, stacks, queues, trees, graphs, and standard algorithms like sorting and searching.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://bigocheatsheet.com

**Tags:** websites, technology-computer-science, algorithms

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/algorithm-complexity