zoukankan      html  css  js  c++  java
  • 合并两个整型有序数组为一个新的有序数组(算法)

    面试中,经常会问到算法问题,比如如何合并两个有序的整型有序数组,使之变成一个有序数组。

    我的代码如下:

     1 package com.company.algorithm;
     2 
     3 import java.util.Arrays;
     4 
     5 /**
     6  * 合并两个有序数组
     7  */
     8 public class MergeSortedArray {
     9     public static void main(String[] args) {
    10         int[] a = {0, 3, 4, 6, 9, 12};
    11         int[] b = {1, 2, 5, 7, 8, 10, 11};
    12         int[] c = marge(a, b);
    13         System.out.println(Arrays.toString(c));
    14     }
    15 
    16     /**
    17      * 合并连个有序数组
    18      * 算法:
    19      * 1. 设置两个指针i,j,分别指向a数组和b数组,一个执行合并后数组的指针index;
    20      * 2. 比较指针i,j指向的值,小的值存入指针index指向的结果数组中,当有一个指针(i或j)先到达数组末尾时,比较结束;
    21      * 3. 将指针(i或j)没有到达数组末尾的数组复制到指针index指向的结果数组中
    22      * @param a
    23      * @param b
    24      * @return
    25      */
    26     private static int[] marge(int[] a, int[] b) {
    27         int[] c = new int[a.length + b.length];
    28         int i = 0, j = 0;
    29         int index = 0;
    30         //比较指针i,j指向的值,小的值存入指针index指向的结果数组中,当有一个指针(i或j)先到达数组末尾时,比较结束;
    31         while (i < a.length && j < b.length) {
    32             if (a[i] < b[j]) {
    33                 c[index++] = a[i++];
    34             } else {
    35                 c[index++] = b[j++];
    36             }
    37         }
    38         int l;
    39         //将指针(i或j)没有到达数组末尾的数组复制到指针index指向的结果数组中
    40         if (i < a.length) {
    41             for (l = i; l < a.length; l++) {
    42                 c[index++] = a[l];
    43             }
    44         }
    45         //将指针(i或j)没有到达数组末尾的数组复制到指针index指向的结果数组中
    46         if (j < b.length) {
    47             for (l = j; l < b.length; l++) {
    48                 c[index++] = b[l];
    49             }
    50         }
    51         return c;
    52     }
    53 }
  • 相关阅读:
    从csv文件里取数据作为请求参数,和把返回数据放到一个csv文件
    记一次if控制器的使用
    记一次使用正则表达式+foreach控制器调试
    获取随机数用作入参使用
    获取返回结果作为参数并将其设置为全局变量(实现跨线程组使用)
    linux默认的目录结构
    总结fiddler抓https包
    Codeforces Round #733 (Div. 1 + Div. 2) D. Secret Santa
    Codeforces Round #733 (Div. 1 + Div. 2) C. Pursuit
    Codeforces Round #731 (Div. 3) A
  • 原文地址:https://www.cnblogs.com/feiyujun/p/10085745.html
Copyright © 2011-2022 走看看