I created this document as a way to solidify my CS fundementals, study for technical interviews, as well as practice LaTeX. My goal was to greatly simplify and classify the information; Providing common use cases, memorable diagrams, easy-to-folow pseudocode, and Big-O notation. The bulk of my research comes from CLRS and Cracking The Code Interview, and I refernce the page number in the column when possible.
I hope you'll find it as useful as I have. Enjoy!
- Stacks
- Queues
- Linked Lists
- Heaps
- Hashtables
- MergeSort
- QuickSort
- HeapSort
- Binary Search Trees
- B-Trees
- Tries
- Radix Tree
- Self-Balancing Trees
- Bloom Filter
- Operations
- Common Tasks
- Representation
- Breadth-First Search
- Depth First Search
- Topological Sort
- Minimum Spanning Tree
- Dijsktra’s Algorithm
- A*
- Convex Hull
- k-Means Clustering
- Top-down
- Bottom-up
- Scheduling
- Threads
- Locks
- Condition Variables
- Semaphores
- Deadlocks
- Assymetric Cryptosystems
- Cryptographic Hash Functions
- Security Attacks
- Project Questions
- Weaknesses
- Questions for Your Interviewer
- Five Algorithm Approaches
- Design Patterns
- Object-Oriented Design
- Testing