Merge Sort Visualization

How Merge Sort Works

Merge Sort is an efficient, stable, divide-and-conquer algorithm. It works by dividing the unsorted list into n sublists, each containing one element (a list of one element is considered sorted). Then, it repeatedly merges sublists to produce new sorted sublists until there is only one sublist remaining. This will be the sorted list.

function mergeSort(array, left, right):
    if left < right:
        mid = (left + right) / 2
        mergeSort(array, left, mid)
        mergeSort(array, mid + 1, right)
        merge(array, left, mid, right)
        visualize(array, left, right)

function merge(array, left, mid, right):
    leftArray = array[left...mid]
    rightArray = array[mid+1...right]
    merge leftArray and rightArray into array
    visualize(array, left, right)