go语言实现两个数组合并(merge)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

//x数组,i:x数组的起始下标 
y数组,j:y数组的起始下标
//说明:x和y数组都是有序的数组
func merge(x []int, i int, y []int, j int) []int {
   xlen := len(x)//x数组的长度
   ylen := len(y)//y数组的长度
   z := make([]int, xlen+ylen)//创建一个大小为xlen+ylen的数组切片
   k := 0//数组切片z的下标
   for i
       if x[i] < y[j] {//把小数放在数组切片z里
           z[k] = x[i]
           i++
        } else {
            z[k] = y[j]
            j++
        }
        k++
   }
   for i != xlen {//把x到xlen-1的数据也存入z中
       z[k] = x[i]
       k++
       i++
   }
   for j != ylen {
        z[k] = y[j]
        k++
        j++
   }
   return z
}

转载于:https://my.oschina.net/u/1013545/blog/180847

你可能感兴趣的:(go语言实现两个数组合并(merge))