It's essential to understand the problem's characteristics and the properties of the Greedy approach to decide whether it is suitable for a specific problem or not.

There are generally three methods for amortized analysis: aggregate analysis, accounting method, and potential method. The choice is most convenient for a particular situation.

A type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet.

A sorting algorithm that picks an element as a pivot and partitions the given array around the picked pivot, sometimes called partition-exchange sort.

An optimization over plain recursion when we cache the results of subproblems to reduce time complexity from exponetial to polynomial.

An algorithm created by Richard M. Karp and Michael O. Rabin that uses hashing to find any one of a set of pattern strings in a text.

Big-O notation gives you a rough indication of the running time of an algorithm and the amount of memory it uses. This allows you to pick the right algorithm for the job.

A hash function used in Rabinâ€“Karp's string search algorithm.