> For the complete documentation index, see [llms.txt](https://interviews.woojiahao.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://interviews.woojiahao.com/algorithms.md).

# Algorithms

- [Binary Search](https://interviews.woojiahao.com/algorithms/binary-search.md): Binary search typically appears when the array is sorted or its left and right halves both possess the same properties
- [Sorting](https://interviews.woojiahao.com/algorithms/sorting.md): Sorting algorithms aren't usually tested alone. They are often paired with another problem type and the goal is to really see if you're able to think about the algorithms in a wider context
- [Recursion](https://interviews.woojiahao.com/algorithms/recursion.md): Recursion is quite a typical problem and can be rather tricky to get right on the first go. Try visualizing recursive algorithms by tracing them out on paper with simpler recursions
- [Graph](https://interviews.woojiahao.com/algorithms/graph.md): Graph algorithms are quite common and usually fall under the following algorithms. You will usually be required to modify these algorithms to fit the problem but it's good to know the fundamentals
- [Quick Select](https://interviews.woojiahao.com/algorithms/quick-select.md): Quick select often comes up when the question asks for the first/last K elements or the Kth largest/smallest element
- [Intervals](https://interviews.woojiahao.com/algorithms/intervals.md): Interval problems aren't easy to spot and require some practice, try looking for ways to model the problem as a set of ranges/intervals
- [Binary](https://interviews.woojiahao.com/algorithms/binary.md): Binary problems are quite rare in interviews and even online assessments but it's always good to know
- [Geometry](https://interviews.woojiahao.com/algorithms/geometry.md): Geometry problems are quite niche and I have really only ever encountered a small handful of them myself. Advent of Code 2023 was where I developed these pointers
- [Dynamic Programming](https://interviews.woojiahao.com/algorithms/dynamic-programming.md): Dynamic Programming is an incredibly confusing topic when you first start, it is good to try recognizing commonly occurring patterns to reduce the amount of head scratching you do
