Implementation of common sorting algorithms – insertion sort, selection sort, quick sort, merge sort, bucket sort, radix sort. Greedy – task scheduling, fractional knapsack and other applications. Divide and Conquer – Closest Pair, Integer multiplication, other applications. Dynamic Programming – matrix chain multiplication, 0-1 knapsack, longest common subsequence, maximum contiguous subarray, edit distance. Graphs- minimum spanning tree algorithms, shortest path algorithms. String matching – KMP, Boyer Moore.