Loading...
Loading...
Data structures and algorithms reference based on CLRS. Use this skill when implementing, discussing, or choosing data structures or algorithms. Auto-activates for algorithm selection, complexity analysis, and performance optimization. Comprehensive coverage of fundamental and advanced data structures with pseudocode examples.
npx skill4agent add grndlvl/software-patterns clrs-algorithms| Structure | Access | Search | Insert | Delete | Use When |
|---|---|---|---|---|---|
| Array | O(1) | O(n) | O(n) | O(n) | Known size, index access |
| Dynamic Array | O(1) | O(n) | O(1)* | O(n) | Unknown size, frequent append |
| Linked List | O(n) | O(n) | O(1) | O(1) | Frequent insert/delete |
| Stack | O(1) | O(n) | O(1) | O(1) | LIFO needed |
| Queue | O(1) | O(n) | O(1) | O(1) | FIFO needed |
| Deque | O(1) | O(n) | O(1) | O(1) | Both ends access |
| Structure | Search | Insert | Delete | Use When |
|---|---|---|---|---|
| Binary Search Tree | O(log n)* | O(log n)* | O(log n)* | Ordered data, frequent search |
| AVL Tree | O(log n) | O(log n) | O(log n) | Guaranteed balance needed |
| Red-Black Tree | O(log n) | O(log n) | O(log n) | Frequent inserts/deletes |
| B-Tree | O(log n) | O(log n) | O(log n) | Disk-based storage |
| Trie | O(m) | O(m) | O(m) | String/prefix operations |
| Heap | O(1)/O(n) | O(log n) | O(log n) | Priority queue needed |
| Splay Tree | O(log n)* | O(log n)* | O(log n)* | Self-adjusting, temporal locality |
| Treap | O(log n)* | O(log n)* | O(log n)* | Randomized balance, split/merge |
| Interval Tree | O(log n) | O(log n) | O(log n) | Interval overlap queries |
| Order-Statistic Tree | O(log n) | O(log n) | O(log n) | Rank/select queries |
| K-D Tree | O(log n)* | O(log n)* | O(log n)* | Multi-dimensional spatial data |
| Structure | Search | Insert | Delete | Use When |
|---|---|---|---|---|
| Hash Table | O(1)* | O(1)* | O(1)* | Fast key-value lookup |
| Hash Set | O(1)* | O(1)* | O(1)* | Unique membership testing |
| Bloom Filter | O(k) | O(k) | N/A | Probabilistic membership |
| Structure | Space | Add Edge | Query Edge | Use When |
|---|---|---|---|---|
| Adjacency List | O(V+E) | O(1) | O(degree) | Sparse graphs |
| Adjacency Matrix | O(V²) | O(1) | O(1) | Dense graphs |
| Algorithm | Time | Use When |
|---|---|---|
| Network Flow | O(VE²) | Max flow, bipartite matching, min cut |
| Strongly Connected Components | O(V+E) | Find SCCs, 2-SAT, dependency analysis |
| Structure | Build | Search | Use When |
|---|---|---|---|
| Suffix Array | O(n log n) | O(m log n) | Space-efficient string matching |
| Suffix Tree | O(n) | O(m) | Fast pattern matching, LCS |
| String Algorithms | O(m) | O(n) | KMP, Rabin-Karp, Boyer-Moore, Aho-Corasick |
| Structure | Use When |
|---|---|
| Skip List | Probabilistic balanced list |
| Disjoint Set | Union-find operations |
| Segment Tree | Range queries with updates |
| Fenwick Tree | Prefix sums with updates |
| Fibonacci Heap | Dijkstra, Prim with O(1) decrease-key |
| Binomial Heap | Mergeable priority queue |
| van Emde Boas Tree | Integer keys with O(log log u) operations |
| Algorithm | Use When |
|---|---|
| Sorting Algorithms | QuickSort, MergeSort, HeapSort, RadixSort, and more |
classfunction->//name: Typeclassfunction->//classfunction.//classdef.#new