
Problem
Solution
Submissions
Implement Merge Sort Algorithm
Certification: Intermediate Level
Accuracy: 100%
Submissions: 1
Points: 15
Write a Python program that implements the Merge Sort algorithm to sort a list of integers in ascending order. Merge Sort is a divide-and-conquer algorithm that divides the input array into two halves, recursively sorts them, and then merges the sorted halves.
Example 1
- Input: [38, 27, 43, 3, 9, 82, 10]
- Output: [3, 9, 10, 27, 38, 43, 82]
- Explanation:
- Step 1: Take the input array [38, 27, 43, 3, 9, 82, 10].
- Step 2: Divide the array into two halves: [38, 27, 43, 3] and [9, 82, 10].
- Step 3: Further divide and recursively sort each half.
- Step 4: Merge the sorted halves back together, comparing elements.
- Step 5: Continue merging until the entire array is sorted.
- Step 6: Return the sorted array [3, 9, 10, 27, 38, 43, 82].
Example 2
- Input: [5, 2, 4, 7, 1, 3, 2, 6]
- Output: [1, 2, 2, 3, 4, 5, 6, 7]
- Explanation:
- Step 1: Take the input array [5, 2, 4, 7, 1, 3, 2, 6].
- Step 2: Divide the array into two halves: [5, 2, 4, 7] and [1, 3, 2, 6].
- Step 3: Further divide and recursively sort each half.
- Step 4: Merge the sorted halves back together, comparing elements.
- Step 5: Continue merging until the entire array is sorted.
- Step 6: Return the sorted array [1, 2, 2, 3, 4, 5, 6, 7].
Constraints
- 1 ≤ len(arr) ≤ 10^5
- -10^6 ≤ arr[i] ≤ 10^6
- Time Complexity: O(n log n), where n is the length of the array
- Space Complexity: O(n)
Editorial
My Submissions
All Solutions
Lang | Status | Date | Code |
---|---|---|---|
You do not have any submissions for this problem. |
User | Lang | Status | Date | Code |
---|---|---|---|---|
No submissions found. |
Solution Hints
- Divide the array into two halves recursively until each subarray has only one element
- Merge the subarrays by comparing elements from both subarrays
- Use a temporary array to store the merged results
- Implement a merge function to combine two sorted subarrays
- The base case of the recursion is when the subarray has one or zero elements
- The merge function should compare elements from both subarrays and place them in sorted order
- The recursion depth is log(n), where n is the length of the array