## Implementation of Merge Sort in Python

Merge sort is a recursive algorithm that continually splits a list in half. If the list is empty or has one item, it is sorted by definition (the base case)

- Algorithm / python

Merge sort is a recursive algorithm that continually splits a list in half. If the list is empty or has one item, it is sorted by definition (the base case)

- Algorithm / python

Insertion Sort builds the final sorted array (or list) one item at a time.

- Algorithm / python

The bubble sort makes multiple passes through a list. It compares adjacent items and exchanges those that are out of order. Each pass through the list places the next largest value in its proper place. In essence, each item “bubbles” up to the location where it belongs.

- Algorithm / python

Binary Search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array.

- Algorithm / python

Given a target amount n and a list (array) of distinct coin values, what's the fewest coins needed to make the change amount.

- Algorithm / python

Implement a Fibonnaci Sequence in three different ways:
Recursively
Dynamically (Using Memoization to store results)
Iteratively

- Algorithm / python

Given a string, write a function that uses recursion to output a list of all the possible permutations of that string.

- Algorithm / Data Structure / python

This interview question requires you to reverse a string using recursion. Make sure to think of the base case here.

- Algorithm

The first is when recursion is used as a technique in which a function makes one or more calls to itself. The second is when a data structure uses smaller instances of the exact same type of data structure when it represents itself. Both of these instances are use cases of recursion.

- Data Structure / python

Given the Stack class below, implement a Queue class using two stacks