<!-- generated-markdown-alternate -->
---
title: "Algorithms and Data Structures"
description: "A collection of notes on fundamental algorithms and data structures, covering time complexity analysis, sorting, searching, heaps, and more. Understanding how…"
url: "https://briansunter.com/algorithms"
---

OCT 4, 2022 · 2 MIN READ

# Algorithms and Data Structures

My notes on algorithms and data structures, from Big O basics to heaps and sorting.

![Cover image for Algorithms and Data Structures](/_astro/Screenshot_2022-12-07_at_12.29.34_PM_1670452221345_0.CfFaK-kW_Z1DBBNu.webp)

A collection of notes on fundamental algorithms and data structures, covering time complexity analysis, sorting, searching, heaps, and more.

## Foundations

### [Time Complexity](/time-complexity)

Understanding how to analyze algorithm efficiency.

- What is an algorithm?
- [A Priori vs A Posteriori Analysis](/posteriori-vs-a-priori-analysis-of-algorithms)
- Frequency count method
- Asymptotic notation: Big O, Omega, and Theta
- Best, worst, and average case analysis

### [Recurrence Relations (Subtracting Functions)](/recurrence-relation-masters-theorem-subtracting)

Analyzing algorithms where subproblems reduce by .

- Divide and conquer introduction
- Substitution method
- Tree method
- Master’s Theorem for

### [Recurrence Relations (Dividing Functions)](/recurrence-relation-masters-theorem-dividing)

Analyzing algorithms where subproblems reduce by .

- Substitution method
- Tree method
- Master’s Theorem for

## Searching

### [Binary Search](/binary-search)

Efficient searching in sorted arrays with time complexity.

- Iterative implementation
- Recursive implementation
- Common variations and edge cases

## Data Structures

### [Heap](/heap)

A complete binary tree that satisfies the heap property.

- Array representation of binary trees
- Complete vs full binary trees
- Min heap and max heap
- Insertion and deletion
- Heap sort
- Heapify
- Priority queues

## Sorting

### Merge Sort

A divide-and-conquer sorting algorithm with time complexity.

- Two-way merge
- K-way merge
- Iterative merge sort

### Quick Sort

An efficient in-place sorting algorithm with average time complexity.

## More Resources

See also my [Data Structures and Algorithms Guide](/data-structures-algorithms-guide) for a comprehensive overview of topics and problems.

## Subscribe to newsletter

I send occasional emails about new blog posts, side projects, and things I'm learning.

By subscribing, you agree to our [Privacy Policy](/privacy).

[Older My Game Review Template ](/game-review-template)[Newer Soma Game Review](/soma)

## Related

- [Recurrence Relation and Master's Theorem for Dividing Functions Jan 5, 2023](/recurrence-relation-masters-theorem-dividing)
- [Recurrence Relation and Master's Theorem for Subtracting Functions Jan 5, 2023](/recurrence-relation-masters-theorem-subtracting)
- [Time Complexity Analysis Aug 22, 2022](/time-complexity)

## Share this article
