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

zongjh · · 37207 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

37207 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传