Java 水题系列(4)数组合并
时间:2022-07-26
本文章向大家介绍Java 水题系列(4)数组合并,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
数组合并
思路:归并排序就是借用这一算法与分治才达到了nlogn的复杂度,所谓合并就是双指针法,小的就加进去,然后指针跳一个,最后肯定有一个数组的指针还没指到头,遍历一遍就是,很优秀的复杂度o(n+m)
/**
* @Title: d.java
* @Description: TODO
* @author 菱形继承
* @date 2020-03-31 03:28:16
*/
/**
* @ClassName: d
* @Description: TODO
* @author 菱形继承
* @date 2020-03-31 03:28:16
*/
import java.util.*;
public class d {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int len1=sc.nextInt(),len2=sc.nextInt();
int[] list1,list2,list;
list1=new int[len1];list2=new int[len2];list=new int[len1+len2];
for(int i=0;i<len1;i++)list1[i]=sc.nextInt();
for(int i=0;i<len2;i++)list2[i]=sc.nextInt();
list=merge(list1,list2);
for(int i=0;i<len1+len2;i++)
{
System.out.print((i==len1+len2)?list[i]:list[i]+" ");
}
}
public static int[] merge(int []list1,int []list2)
{
int len1=list1.length,len2=list2.length;
int[] list= new int[len1+len2];
int i=0,j=0,cnt=0;
while(i<len1&&j<len2)
{
if(list1[i]<=list2[j])
{
list[cnt++]=list1[i];
i++;
}
else
{
list[cnt++]=list2[j];
j++;
}
}
while(i<len1)
{
list[cnt++]=list1[i];
i++;
}
while(j<len2)
{
list[cnt++]=list2[j];
j++;
}
//System.out.println(cnt);
return list;
}
}
运行结果:
- 每天学一点Docker(5)——了解Docker架构
- 跨站请求伪造(CSRF/XSRF)
- 我这么玩Web Api(一)
- 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路
- 点双连通分量与割点
- 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富
- 2463: [中山市选2009]谁能赢呢?
- 2748: [HAOI2012]音量调节
- 2697: 特技飞行
- 我这么玩Web Api(二)
- 1296: [SCOI2009]粉刷匠
- 1293: [SCOI2009]生日礼物
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释