Greedy Algorithm Greedy is an algorithmic paradigm that builds up a solution piece by piece, always choosing the next piece that offers the most obvious and immediate benefit. At every step, we can make a choice that looks best at the moment, and we get the optimal solution of the complete problem. If a Greedy... Continue Reading →

# Dynamic Programming

Dynamic Programming Solves complex problem by breaking it into subproblems and stores the results of subproblems to avoid computing the same results again. Required Properties Overlapping Sub problems Example of Fibonacci Numbers Memorise solution of sub number and store it then if required use that rather calculating again Ways to store value Memoization (Top -... Continue Reading →

# Asymptotic Analysis

Evaluate performance of algorithm in term of input size Order of growth in performance in respective of no of elements. Cases to analyze algorithm Worst Case : upper bound O(n) Average Case Best Case: lower bound O(1) Notations: Theta Notation Θ: Bound algo from above & below Big O Notation : defines Upper bound Omega... Continue Reading →