MERGE sort implementation in go - Merge Sort - Algorithm
Learn
Algorithm - Merge Sort - Merge sort implementation in go
Merge Sort Implementation in Go
package main
import"fmt"
func mergeSort(a []int)[]int{iflen(a)<2{return a
}
m :=(len(a))/2
f :=mergeSort(a[:m])
s :=mergeSort(a[m:])returnmerge(f, s)}
func merge(f []int, s []int)[]int{
var i, j int
size :=len(f)+len(s)
a :=make([]int, size, size)for z :=0; z < size; z++{
lenF :=len(f)
lenS :=len(s)if i > lenF-1&& j <= lenS-1{
a[z]= s[j]
j++}elseif j > lenS-1&& i <= lenF-1{
a[z]= f[i]
i++}elseif f[i]< s[j]{
a[z]= f[i]
i++}else{
a[z]= s[j]
j++}}return a
}
func main(){
a :=[]int{75,12,34,45,0,123,32,56,32,99,123,11,86,33}
fmt.Println(a)
fmt.Println(mergeSort(a))}