Implement Merge Sort using Goroutines to divide and merge subarrays in parallel.
HardProblem Statement
Implement Merge Sort using Goroutines to divide and merge subarrays in parallel.
Sample Input
[9, 5, 1, 3, 7]
Sample Output
[1 3 5 7 9]
Limits
Time: 2s · Memory: 256 MB
Code Editor
00:00
package main
import "fmt"
func mergeSort(arr []int) []int {
if len(arr) < 2 {
return arr
}
mid := len(arr) / 2
left := mergeSort(arr[:mid])
right := mergeSort(arr[mid:])
return merge(left, right)
}
func merge(left, right []int) []int {
// Your code here
}
func main() {
arr := []int{9, 5, 1, 3, 7}
sortedArr := mergeSort(arr)
fmt.Println(sortedArr)
}
Input
[9, 5, 1, 3, 7]
Expected Output
[1 3 5 7 9]