起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java合并两个排序数组

Java合并两个排序数组

时间:2022-08-14 14:43:56来源:零基础学Java 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:java两个数组合并排序

前言: java两个数组合并排序是什么?IT培训网小编给大家举例说明。 问题陈述 给定两个大小为N和M的数组排序A[]和B[]。任务

java两个数组合并排序是什么?IT培训网小编给大家举例说明。

问题陈述

给定两个大小为N和M的数组排序A[]和B[]。任务是以非递减顺序将两个数组合并为一个数组。

例子:

输入: A[] =[3, 9, 10, 18, 23], B[] = [5, 12, 15, 20, 21, 25]

输出: [3, 5, 9, 10, 12, 15, 18, 20, 21, 23, 25]

解释:合并后的数组按排序顺序包含两个数组中的所有元素。

输入: A[] = [1, 5], B[] = [4, 6, 7]

输出: [1, 4, 5, 6, 7]

插入和排序方法

最幼稚的方法是简单地将一个数组的元素合并到另一个数组中并对结果数组进行排序。

公共无效合并(int [] nums1,int m,int [] nums2,int n){
        for (int i = 0; i < n; i++) {
            nums1[i + m] = nums2[i];
        }
        Arrays.sort(nums1);
    }

合并排序方法

这里要注意的关键思想是两个数组都是排序的。因此,利用这一事实,我们可以应用类似于归并排序技术的方法。

创建一个大小为 N + M 的辅助数组,并在此数组中插入合并元素。

让我们通过一个例子来理解这种方法:

算法

创建一个大小为N + M的辅助数组。

放入两个指针i和j并将它们初始化为 0。

指针 i指向第一个数组,而指针 j指向第二个数组。

使用指针同时遍历两个数组,并在两个数组中选择最小的元素并插入到辅助数组中。

增加指针。

遍历后,返回合并后的数组。

Java 实现

公共静态无效mergeArrays(int [] arr1,int [] arr2,int n1,
  int n2,int [] arr3){ 
  int i = 0,j = 0,k = 0;
  while (i < n1 && j < n2) { 
    if (arr1[i] < arr2[j]) 
      arr3[k++] = arr1[i++]; 
    否则
      arr3[k++] = arr2[j++]; 
  }
  而 (i < n1) 
    arr3[k++] = arr1[i++];  
  而 (j < n2) 
    arr3[k++] = arr2[j++]; 
}

以上就是关于“Java合并两个排序数组”的介绍,大家如果对此比较感兴趣,想了解更多相关知识,可以关注一下IT培训网的Java在线学习,里面的课程内容细致全面,很适合没有基础的小白学习,希望对大家能够有所帮助哦。

文章出自:http://qh.itpxw.cn/peixun/software/2022123774.html

文章标题:Java合并两个排序数组



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容