zoukankan      html  css  js  c++  java
  • NC22 合并两个有序的数组

    package NC;

    /**
    * NC22 合并两个有序的数组
    *
    * 给出一个整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组
    *
    * 数据范围: ,,
    *
    * 注意:
    * 1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n
    * 2.不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了
    * 3. A 数组在[0,m-1]的范围也是有序的
    *
    * @author Tang
    * @date 2021/9/29
    */
    public class Merge {

    /**
    * 用空间换时间
    *
    *
    * @param A
    * @param m
    * @param B
    * @param n
    */
    public void merge(int A[], int m, int B[], int n) {
    int[] temp = new int[m];
    for(int i = 0; i < temp.length; i++) {
    temp[i] = A[i];
    }

    int indexB = 0;
    int indexA = 0;
    int index = 0;

    while(index < A.length) {
    if(indexB >= n) {
    for(int i = indexA; i < m; i++) {
    A[index] = temp[indexA];
    index++;
    indexA++;
    }
    break;
    }

    while(indexA < m && temp[indexA] <= B[indexB]) {
    A[index] = temp[indexA];
    index ++;
    indexA++;
    }

    if(indexA >= m) {
    for(int i = indexB; i < n; i++) {
    A[index] = B[indexB];
    index++;
    indexB++;
    }
    break;
    }

    while(indexB < n && temp[indexA] >= B[indexB]) {
    A[index] = B[indexB];
    index++;
    indexB++;
    }

    }


    }

    public static void main(String[] args) {

    int A[] = {1,2,2,0,0,0};
    int B[] = {3,5,6};
    new Merge().merge(A,3,B,3);

    }

    }
  • 相关阅读:
    Flask--目录
    Linux相关目录
    Mac 提示错误”xcrun: error“
    subprocess模块
    压缩模块
    GitPython模块
    Ansible-ansible命令
    YAML语法
    Ansible-安装
    Ansible-概念
  • 原文地址:https://www.cnblogs.com/ttaall/p/15353560.html
Copyright © 2011-2022 走看看