O(n log n) Merge Sort is a divide-and-conquer algorithm that splits the input into smaller parts, sorts them, and then merges the sorted parts back together. Its time complexity is O(n log n) due to the following: Divide : The array is recursively divided into two halves until each subarray contains a single element. This division step takes log n time, as the array is halved at each level . Merge : The subarrays are merged back together in sorted order. Each merge operation processes all elements in the array, taking O(n) time at each level . Combine : The merging is repeated across all levels of recursion, resulting in n log n time complexity . {0, 1, 2, 3, 7, 8, 10} O(n log n) Log-linear time Divide Original : {8, 3, 1, 7, 0, 10, 2} Split 1: {8, 3, 1} and {7, 0, 10, 2} Split 2: {8} {3, 1} and {7, 0} {10, 2} Split 3: {8} {3} {1} and {7} {0} {10} {2} Merge Merge 1: {3} and {1} → {1, 3} {7} and {0} → {0, 7} {10} and {2} → {2, 10} Merge 2: {8} and {1, 3} → {1, 3, 8} {0, 7} and {2, 10} → {0, 2, 7, 10} Merge 3: {1, 3, 8} and {0, 2, 7, 10} → {0, 1, 2, 3, 7, 8, 10}