These are the Fundamental Data Structures and Algorithms for a Software Engineer.
- Bubble Sort O(n^2)
- Selection Sort O(n^2)
- Insertion Sort O(n^2)
- Quick Sort O(nlogn)
- Merge Sort O(nlogn)
- Heap Sort O(nlogn)
- Counting Sort O(n + k) where k is a finite number
- Radix Sort O(n * d) where d is the number of digits in the maximum number
- Bucket Sort O(n)
- AVL Trees
- Trie
- Binary Search Trees
- Breadth-First Search
- Depth-First Search
- Topological Sort
- mDFS
- Kahn's Algorithm
- Recurisve Backtracking
- Making Change
- Minimum Spanning Trees
- Prim's Algorithm
- Kruskal's Algorithm
- Huffman Coding
- Dijkstra's
- A*
- Fibonacci
- Making Change
- Knapsack