Skip to main content
AL-A: Fundamental Data Structures and Algorithms
- Abstract Data Types (ADTs) including Bag, Collection, Dictionary, List, and Set properties
- Arrays: single and multi-dimensional
- Linear and Binary Search
- Cryptography (e.g. SHA-256, RSA)
- Graphs [cross-reference: MF/Graphs and Trees]
- (un)directed, (a)cyclic, (un)connected, and (un)weighted
- Adjacency List and Matrix representations
- Graph Algorithms
- Breadth-First Search
- Connectivity, Shortest-Path
- Depth-First Search
- Acyclicity, Connectivity, Transitive Closure, Topological Sort
- Hamiltonian Circuit
- Minimal Spanning Tree
- Prim’s and Kruskal’s algorithms
- Shortest-Path
- Bellman-Ford,
- Dijkstrat’s/Uniform-Cost,
- Floyd-Warshall
- Transitive Closure: Warshall’s Algorithm
- Hash Tables / Maps
- Collision resolution: Linear/Quadratic Probing, Chaining, and Rehashing
- Linked Lists: single, doubly linked, and circular
- Objects
- Queues, Priority Queues, and Dequeues
- Records/Structs and Tuples
- Stacks
- Strings
- String Matching: (Boyer-Moore)
- Sorting Algorithms:
- O(n2) Selection, Insertion
- O(n log n) Quicksort, Merge, and Heap
- O(n) Fast-Sorting: Bucket and Radix
- Lexicographical Ordering
- Partial Ordering
- Topological Ordering
- Trees
- Binary, N-ary, Search, Balanced, and Heaps
- Depth-First, Bread-First, Best-First, Backtracking search
- Balancing approaches (e.g., for AVL, Red-Black, 2-3, or B trees)
- Huffman Coding
- Differential Privacy
- Basic Linear Algebra (e.g., Strassen’s Matrix Multiplication)
- Invariants (in: loops, search algorithms, etc.)
AL-B: Algorithmic Strategies
- Algorithmic Strategy
- Approximation
- Polynomial approximation
- Backtracking [crosslist: Artificial Intelligence]
- Branch and Bound
- Brute-Force/Exhaustive Search
- Selection Sort, Traveling Salesman, Knapsack
- Consensus algorithms
- Blockchain
- Decrease-and-Conquer
- Insertion sort, Depth and Breadth-First search, Topological sort
- Divide-and-Conquer
- Binary Search, Quicksort, Mergesort, Strassen’s algorithm
- Dynamic Programming
- Warshall’s algorithm and Floyd’s algorithm
- Greedy
- Dijkstra’s Kruskal’s algorithms
- Heuristic: A*
- Iterative
- Linear Search
- Parallel [crosslist: PD/Parallel Algorithms, Analysis, and Programming]
- Parallel Mergesort
- Randomized/Stochastic Algorithms
- MaxCut, Balls and Bins
- Recursive
- Depth-First, Breadth-First Search, Factorial
- Space and Time Tradeoff
- Hashing
- Transform-and-Conquer/Reduction
- 2-3, AVL, Red-Black trees, Heapsort
AL-C: Complexity Analysis
- Algorithmic Analysis
- Analysis Framework
- Average, Best, and Worst case performance
- Empirical and Relative (Order of Growth) Measurements
- Input Size and Primitive Operations
- Time and Space Efficiency
- Asymptotic complexity analysis
- Big O, Little O, Big Omega, and Big Theta
- Foundational Complexity/Efficiency classes
- Constant, Logarithmic, Linear, Log Linear, Quadratic, Cubic, Exponential, and Factorial
- Iterative and recursive algorithm analysis
- Recurrence Relations
- Master Theorem Analysis
- Substitution Analysis
- Tractability and Intractability
- P, NP and NP-C complexity classes
- Hamiltonian Circuit, Knapsack, and SAT problems
- Time and space trade-off in algorithms
AL-D: Computational Models
- Formal Languages and Grammars
- Chomsky Hierarchy
- Regular, Context-Free, Context-Sensitive, and Recursively Enumerable
- Regular expressions
- Formal Automata
- Finite State, Pushdown, Linear-Bounded, and Turing Machine
- Deterministic versus Nondeterministic and equivalencies
- Relations among formal automata, languages and grammars
- Decidability and limitations
- Decidability, Computability, Halting problem
- The Church-Turing Thesis
- The P, NP, and NPC complexity
AL-E: Algorithms and Society
- Context-Aware Computing
- Social, Ethical, and Secure Algorithms
- Differential Privacy
- Algorithmic Fairness
- Accountability/Transparency