Knowledge
Quick Select
QuickSelect finds the k-th smallest element (0-based) in expected linear time by repeatedly partitioning the array in-place, shrinking the search to the side that must contain the answer.
Bottom-Up Merge Sort
An iterative (non-recursive) merge sort that repeatedly merges adjacent sorted runs of size 1, 2, 4, … until the whole array is sorted.
Shell Sort
An in-place generalization of insertion sort that improves performance by comparing elements far apart using gap-based passes, achieving sub-quadratic time in practice.
Top-Down Merge Sort
A stable divide-and-conquer sort that recursively splits an array, then merges sorted halves using a single auxiliary array.
Scalability
An overview of scalability as a core non-functional requirement: what it is, what it isn’t, and the trade-offs behind common scaling techniques.
Availability
An overview of availability as a core non-functional requirement: what it is, what it isn’t, and the trade-offs behind common availability techniques.
LRU Cache
A fixed-capacity cache that guarantees O(1) access and eviction by combining a HashMap for lookup with a doubly linked list for usage ordering.
HashMap
A structure that trades memory for near-constant-time lookup and underpins caches, indexes, and associative containers.
Dijkstra’s Shortest Path Algorithm
Single-source shortest path algorithm for graphs with non-negative edge weights.
Breadth-First Search on an Adjacency Matrix
Level-order traversal over a graph represented as a matrix, with shortest-path reconstruction.