日本語版
Algorithms and Data Structures
Algorithms and data structures form the foundation of programming. This guide systematically covers complexity analysis, sorting algorithms, tree structures, graph algorithms, dynamic programming, and competitive programming techniques.
Target Audience
- Engineers who want to systematically learn algorithms
- Those preparing for coding interviews
- Those interested in competitive programming
Prerequisites
- Basic programming (loops, conditionals, functions)
- Basic mathematics (logarithms, exponents, sets)
Study Guide
00-basics — Fundamentals
01-sorting — Sorting Algorithms
02-data-structures — Data Structures
03-graph — Graph Algorithms
04-advanced — Advanced Algorithms
Quick Reference
Complexity Cheat Sheet:
O(1) — Hash table lookup
O(log n) — Binary search
O(n) — Linear search
O(n log n) — Merge sort, quicksort (average)
O(n^2) — Bubble sort, insertion sort
O(2^n) — Subset enumeration
O(n!) — Permutation enumeration
References
- Cormen, T. et al. "Introduction to Algorithms." MIT Press, 2022.
- Sedgewick, R. "Algorithms." Addison-Wesley, 2011.
- Skiena, S. "The Algorithm Design Manual." Springer, 2020.