• 合并两个整型有序数组为一个新的有序数组(算法)


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

    我的代码如下:

     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 }
  • 相关阅读:
    小技巧如何将网页中的长表格快速翻译并插入博客园中
    常见错误问题 chrome自带google翻译失效
    操作系统厂家汇总
    那些优秀的常用软件们烧录器
    网络协议分析 dhcp
    流行应用程序与tcp\udp服务
    那些优秀的网站 免费在线格式转换
    事务及事务隔离级别
    python实现PDF指定页面旋转
    python实现WPS文件转PDF
  • 原文地址:https://www.cnblogs.com/feiyujun/p/10085745.html
Copyright © 2020-2023  润新知