🏗️ ΘρϵηΠατπ🚧 (under construction)

Many useful algorithms have a recursive structure. A common pattern that comes up is solving a problem by first breaking down the initial problem into two or more sub-problems which can be solved recursively, and then finally combining the two sub-problems together. Note that not all problems can be solved in this way

Divide and Conquer
An algorithm that solves a problem by recursively solving subproblems and then re-combining them is said to be a divide and conquer algorithm.
merge is Correct
Given an array A and indices left_idx,split_idx,right_idx such that the subarrays A[left_idx,...,split_idx],A[split_idx + 1,...,right_idx] are already sorted in ascending order then after merge sort has terminated, then the subarray A[left_idx,...,right_idx] is sorted in ascending order
merge_sort is Correct
Given any list, merge sort correctly sorts it in place