Caching and the Least Recently Used Replacement Policy
What is caching, and how does the Least Recently Used replacement policy maintain values of interest in the cache?
The Knapsack Problem
Examining the Knapsack Problem and solutions using dynamic programming.
Introduction to Databases
What are databases? What are the similarities and differences from file systems? What is a SQL vs No-SQL database and the pros and cons of each for a given application?
Lightning Fast String Lookups With Tries
Tries are a hybrid data structure combining a tree and hash table to provide O(k) lookup for k-character words, popular for use cases like typeahead and autocomplete.
Binary Heaps: Min-Heaps and Max-Heaps
Binary Heaps are binary-tree based data structures that can be used to implement a Priority Queue and provide O(1) insert and find-minimum performance.
AVL Trees Part 2: Insertions
Taking an in-depth look at node rebalancing after insertions in AVL trees.
AVL Trees Part 1: Balanced Binary Search and Rotations
AVL trees are self-balancing binary trees that avoid worst-case O(n) performance given increasing or decreasing inputs.
Binary Tree Application: Binary Space Partitioning
Binary space partitioning recursively subdivides a space. It is an application of binary trees and often used for procedurally generated game levels or computational art.
Binary Search Trees: Handling Deletion
Handling deletion in Binary Search Trees for nodes with zero, one, and two children.
Intro to Binary Search Trees
Binary Search Trees are are a data structure allowing O(log(N)) lookup of entries. We implement insertion, traversal, and search methods for Binary Search Trees.
Intro to Linked Lists
The Singly Linked List is a classic data structure. We implement length, insert, remove, and search methods, and compare the Linked List's big-O complexity to arrays.
Stacks, Queues, and Matching Brackets
Introducing the Stack and Queue data structures, using the Stack to implement a Code Linter to check for mismatched open and closing brackets.
Quicksort, a Divide and Conquer Sorting Algorithm.
Binary Insertion Sort