博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试需要的基础知识-合并排序数组
阅读量:7042 次
发布时间:2019-06-28

本文共 1330 字,大约阅读时间需要 4 分钟。

hot3.png

题目

有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2。请实现一个函数,把A2中的所有数字插入到A1中并且所有的数字是排序的。

解题思路

从尾到头比较A1和A2中的数字,比较大的数字复制到A1数组的最后一个未替换的位置

实现代码

/** *  */package com.jason.interviewQuestions.basicKnowledge;/** * 有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2。请实现一个函数,把A2中的所有数字插入到A1中并且所有的数字是排序的。 * @author jason zhang * */public class InsertSortedArray {	public void insertSortedArray(int[] a1, int[] a2, int a1OriginalLength) {		if (a1 == null || a2 == null || a1OriginalLength <= 0) {			return;		}		int indexOfOriginalA1 = a1OriginalLength - 1;		int indexOfA2 = a2.length - 1;		int indexOfA1 = a1.length - 1;		while (indexOfA2 >= 0) {			if (a2[indexOfA2] >= a1[indexOfOriginalA1]) {				a1[indexOfA1--] = a2[indexOfA2--];			} else {				a1[indexOfA1--] = a1[indexOfOriginalA1--];			}		}	}}

测试代码

package com.jason.interviewQuestions.basicKnowledge;import junit.framework.TestCase;public class InsertSortedArrayTest extends TestCase {	private InsertSortedArray isa;	protected void setUp() throws Exception {		super.setUp();		this.isa = new InsertSortedArray();	}	public void testInsertSortedArray() {		int[] a1 = {1,3,8,9,11};		int[] a2 = {2,5,10,12};		int[] newA1 = new int[(a1.length + a2.length)];		System.arraycopy(a1, 0, newA1, 0, a1.length);		this.isa.insertSortedArray(newA1, a2, a1.length);		for (int i=0; i

转载于:https://my.oschina.net/u/914897/blog/471553

你可能感兴趣的文章
DHCP服务和http服务
查看>>
bitnami 使用记录
查看>>
Vsftpd+(linux)文件服务器
查看>>
JEPLUS之循环报表—JEPLUS软件快速开发平台
查看>>
从一个线上问题分析binlog与内部XA事务提交过程
查看>>
网页版式设计与平面构图
查看>>
view桌面模板控制usb权限
查看>>
吾日三省吾身
查看>>
【office培训】【王佩丰】Excel2010视频教程第2讲:单元格格式设置
查看>>
android inflate
查看>>
libxml2的编译与安装
查看>>
详述Google针对Android平板App发布的十大开发准则
查看>>
CentOS 7安装python3笔记
查看>>
XenApp 屏幕录像播放提示版本错误
查看>>
linux 通配符、元字符和特殊字符
查看>>
进程控制(学习笔记)
查看>>
hibernate中sorted collection和ordered collection区别
查看>>
“***”眼中云计算的“五大漏洞”
查看>>
网页练习
查看>>
JAVA继承和组合
查看>>