分享
go语言实现两个数组合并(merge)
zongjh · · 38646 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
//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
}
//说明: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
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信38646 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
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
}
//说明: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
}