Searching, sorting, hashing, asymptotic complexity, algorithm design techniques (greedy, dynamic programming, divide-and-conquer), graph traversals, MST, shortest paths.
Algorithms: linear search, binary search, ternary search.
Arranging elements in order: bubble, insertion, selection, merge, quick, heap, counting sort, radix sort.
Key to index mapping for O(1) average access.
Big-O, Omega, Theta notations; analysis of algorithms.
Brute force, divide & conquer, greedy, dynamic programming, backtracking, branch & bound.
Make locally optimal choice at each step.
DP solves problems by breaking into overlapping subproblems and storing results.
Divide problem into subproblems, solve recursively, combine.
BFS (queue) and DFS (stack/recursion).
Tree connecting all vertices with minimum total weight.
Algorithms: Dijkstra (non-negative weights), Bellman-Ford (negative allowed), Floyd-Warshall (all pairs).