Merge Sort Visualizer

Current line Previous line
MergeSort.java (AP CSA)
from: - to: - mid: -
public static void mergeSort(int[] elements) { int n = elements.length; int[] temp = new int[n]; mergeSortHelper(elements, 0, n - 1, temp); } private static void mergeSortHelper(int[] elements, int from, int to, int[] temp) { if (from < to) { int middle = (from + to) / 2; mergeSortHelper(elements, from, middle, temp); mergeSortHelper(elements, middle + 1, to, temp); merge(elements, from, middle, to, temp); } } private static void merge(int[] elements, int from, int mid, int to, int[] temp) { int i = from; int j = mid + 1; int k = from; while (i <= mid && j <= to) { if (elements[i] < elements[j]) { temp[k] = elements[i]; i++; } else { temp[k] = elements[j]; j++; } k++; } while (i <= mid) { temp[k] = elements[i]; i++; k++; } while (j <= to) { temp[k] = elements[j]; j++; k++; } for (k = from; k <= to; k++) { elements[k] = temp[k]; } } // Done ✅
from
to
mid
i (Left)
j (Right)
k (Place)
Elements
Recursion Tree & Execution Order
Press Step or Play to begin Merge Sort.
from: -
to: -
mid: -
i: -
j: -
k: -

Comparisons: 0
Merge Calls: 0
Steps: 0