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

//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
}

本文来自:开源中国博客

感谢作者:zongjh

查看原文:go语言实现两个数组合并(merge)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。