zoukankan      html  css  js  c++  java
  • 合并排序数组

    要求:

    合并两个排序的整数数组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 }
  • 相关阅读:
    公约数
    [TJOI2017]异或和
    [HNOI2014]世界树
    小清新数据结构题
    CF809E 【Surprise me!】
    [JXOI2017]颜色
    docker swarm集群
    jenkins构建maven项目
    jenkins软件工具部署
    jenkins持续集成
  • 原文地址:https://www.cnblogs.com/573583868wuy/p/8444715.html
Copyright © 2011-2022 走看看