Merge sort
Merge sort is an efficient sorting algorithm that divides the input array into two parts of a sublist. It sorts each sublist and then merges them. To sort each sublist, the algorithm divides the sublist in two again. If this sublist of the sublist can be divided into two halves, then it will be. The idea of the merge sort is that it will merge all the sorted sublists into the fully sorted list. Suppose we have an array containing these elements, {7, 1, 5, 9, 3, 6, 8, 2}
, as shown in the following diagram:
We can divide the array into two sublists, which are [7, 1, 5, 9] and [3, 6, 8, 2]. Then, the first sublist can be divided as well to become [7, 1] and [5, 9]. We can sort these sublists and they will be [1, 7] and [5, 9], and then we can merge this sublist so that it becomes [1, 5, 7, 9], as shown in the following diagram:
By now, we have one sorted sublist. We need to sort another sublist, [3, 6, 8, 2]. We can divide this sublist to become [3, 6] and [8, 2], and then sort them...