Skip to content

Instantly share code, notes, and snippets.

@lettergram
Created March 18, 2015 20:08
Show Gist options
  • Save lettergram/76f0a4eebdaa00881b87 to your computer and use it in GitHub Desktop.
Save lettergram/76f0a4eebdaa00881b87 to your computer and use it in GitHub Desktop.
// Merges left and right slice into newly created slice
func Merge(left, right []int) []int {
size, i, j := len(left)+len(right), 0, 0
slice := make([]int, size, size)
for k := 0; k < size; k++ {
if i > len(left)-1 && j <= len(right)-1 {
slice[k] = right[j]
j++
} else if j > len(right)-1 && i <= len(left)-1 {
slice[k] = left[i]
i++
} else if left[i] < right[j] {
slice[k] = left[i]
i++
} else {
slice[k] = right[j]
j++
}
}
return slice
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment