package main
import"fmt"funcmain(){
data :=[]int{8,9,5,7,1,2,5,7,6,3,5,4,8,1,8,5,3,5,8,4}
fmt.Println(data)
data =mergeSort(data)
fmt.Println(data)}funcmergeSort(data []int)[]int{iflen(data)<=1{return data
}
mid :=len(data)/2
left :=mergeSort(data[:mid])
right :=mergeSort(data[mid:])returnmerge(left,right)}funcmerge(left, right []int)[]int{
res :=[]int{}
i, j :=0,0for i<len(left)&& j<len(right){if left[i]< right[j]{
res =append(res, left[i])
i++}else{
res =append(res, right[j])
j++}}for i <len(left){
res =append(res, left[i])
i++}for j <len(right){
res =append(res, right[j])
j++}return res
}