Step 1: Split array into two halves: left=[38,27,43], right=[3,9,82,10]
[38, 27, 43] [3, 9, 82, 10]
Why: Divide the problem into smaller parts to sort separately
Step 2: Split left half into [38] and [27, 43]
[38] [27, 43] [3, 9, 82, 10]
Why: Keep dividing until subarrays have one element
Step 3: Split [27, 43] into [27] and [43]
[38] [27] [43] [3, 9, 82, 10]
Why: Single elements are sorted by definition
Step 4: Merge [27] and [43] into sorted [27, 43]
[38] [27, 43] [3, 9, 82, 10]
Why: Combine sorted parts to build bigger sorted arrays
Step 5: Merge [38] and [27, 43] into sorted [27, 38, 43]
[27, 38, 43] [3, 9, 82, 10]
Why: Merge sorted left half completely
Step 6: Split right half into [3, 9] and [82, 10]
[27, 38, 43] [3, 9] [82, 10]
Why: Divide right half to smaller parts
Step 7: Split [3, 9] into [3] and [9]
[27, 38, 43] [3] [9] [82, 10]
Why: Single elements are sorted
Step 8: Merge [3] and [9] into [3, 9]
[27, 38, 43] [3, 9] [82, 10]
Why: Merge sorted small parts
Step 9: Split [82, 10] into [82] and [10]
[27, 38, 43] [3, 9] [82] [10]
Why: Divide until single elements
Step 10: Merge [82] and [10] into [10, 82]
[27, 38, 43] [3, 9] [10, 82]
Why: Merge sorted small parts
Step 11: Merge [3, 9] and [10, 82] into [3, 9, 10, 82]
[27, 38, 43] [3, 9, 10, 82]
Why: Merge sorted right half completely
Step 12: Merge [27, 38, 43] and [3, 9, 10, 82] into fully sorted [3, 9, 10, 27, 38, 43, 82]
[3, 9, 10, 27, 38, 43, 82]
Why: Final merge to get fully sorted array
Result: [3, 9, 10, 27, 38, 43, 82]