合并排序数组

要求:

合并两个排序的整数数组A和B变成一个新的数组

示例:

给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]

 代码:

 1 package main
 2 
 3 import "fmt"
 4 
 5 /**
 6  * 合并两个有序数组组成一个新的有序数组
 7  */
 8 func main() {
 9     var a = [4]int{1,2,3,4}
10     var b = [...]int{1,2,2,3,4,4,5,6}//此处用数组,也可以直接换成切片
11     var la = len(a)
12     var lb = len(b)
13     var res = make([]int, 0, la+lb)
14     var i,j int = 0, 0
15 
16     //循环两个比较两个数组,较小元素放入新数组,下标加1,直到某一个下标等于数组长度时退出循环
17     for i<la && j<lb {
18         if a[i] > b[j] {
19             res = append(res, b[j])
20             j++
21         } else {
22             res = append(res, a[i])
23             i++
24         }
25     }
26 
27     //此时较短数组已经全部放入新数组,较长数组还有部分剩余,最后将剩下的部分元素放入新数组
28     for i < la {
29         res = append(res, a[i])
30         i++
31     }
32     for j < lb {
33         res = append(res, b[j])
34         j++
35     }
36     fmt.Println("排序后的新序列为 ", res)
37 }
原文地址:https://www.cnblogs.com/573583868wuy/p/8444715.html