How to merge two sorted slices in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func mergeArrays(arr1, arr2 []int) []int {
    merged := make([]int, 0, len(arr1)+len(arr2))
    i, j := 0, 0

    // Merge while both slices have elements
    for i < len(arr1) && j < len(arr2) {
        if arr1[i] < arr2[j] {
            merged = append(merged, arr1[i])
            i++
        } else {
            merged = append(merged, arr2[j])
            j++
        }
    }

    // Append remaining elements
    merged = append(merged, arr1[i:]...)
    merged = append(merged, arr2[j:]...)

    return merged
}

func main() {
    arr1 := []int{1, 3, 5, 7, 8, 9, 9}
    arr2 := []int{2, 3, 4, 5, 6, 9}

    result := mergeArrays(arr1, arr2)
    fmt.Println(result)
}



/*
run:

[1 2 3 3 4 5 5 6 7 8 9 9 9]

*/

 



answered Nov 30, 2025 by avibootz

Related questions

1 answer 73 views
1 answer 142 views
1 answer 155 views
155 views asked Aug 18, 2020 by avibootz
2 answers 273 views
273 views asked Aug 18, 2020 by avibootz
1 answer 193 views
...