`

有趣的Java算法(3)

    博客分类:
  • Java
阅读更多

给定两个排序后的数组A和B,其中A的末端有足够的空间容纳B,编写一个方法将B合并到A并排序

       拿到这个题后,最直接的想法就是比较A和B中的元素,并按顺序插入数组,直到遍历完A和B中的所有元素。但是这样做会有一个不好的地方:如果元素的插入位置在数组A的前端,那就必须将原来的数组往后移动。这会增加开销。但是我们可以使用另外的一种办法将元素插入数组A的末端。这样我们不会出现元素移动的情况!代码如下

 /*
	 * lastA:a中的实际元素数  lastB:b中的实际元素数 mergeIndex是新数组的实际空间大小
       */
      public static void mergeOrder(int[] a, int[] b, int lastA, int lastB) {
		int indexA = lastA - 1; 
		int indexB = lastB - 1;
		int mergeIndex = lastA + lastB - 1; 
		while (indexA >= 0 && indexB >= 0) {
			if (a[indexA] > b[indexB]) {
				a[mergeIndex] = a[indexA];
				mergeIndex --;
				indexA --;
			} else {
				a[mergeIndex] = b[indexB];
				mergeIndex --;
				indexB --;
			}
		}
		
		while (indexB >= 0) {
			a[mergeIndex] = b[indexB];
			mergeIndex --;
			indexB --;
		}
	}

 

 

分享到:
评论

相关推荐

    java算法大全源码 java算法大全源码

    java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法...

    Java算法集题大全.zip

    Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...

    java算法(推荐)

    java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java...

    kMP算法JavakMP算法JavakMP算法JavakMP算法Java

    kMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法Java...

    java经典算法 java经典算法

    java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法

    Java算法大全描述java的常用数据结构

    java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用...

    java算法全卷(包括基本算法和图算法)

    java算法全卷(包括基本算法和图算法)

    java算法java算法java算法

    java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法

    java算法大全(很全的java算法)

    java java算法 java程序 一百多个java算法

    java算法大全源码包-java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料

    java算法大全源码包 java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料。

    java算法大全源码包.rar ,JAVA,算法

    java算法大全源码包.rar ,JAVA,算法 java算法大全源码包.rar ,JAVA,算法 java算法大全源码包.rar ,JAVA,算法

    JAVA算法编程题目及答案.doc

    java算法编程题目及答案50道

    Java 经典算法例子

    Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典...

    java算法大全源码包

    java算法大全源码包java算法大全源码包java算法大全源码包java算法大全源码包java算法大全源码包java算法大全源码包

    java 算法 经典算法 好的算法

    算法 冒泡等 java 算法 经典算法 好的算法 程序员必读

    java的算法题(一)

    共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题

    JAVA 经典算法书集合(2)

    JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2)JAVA 经典算法书集合...

    java经典算法合集

    java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法

    java 算法(近百种java算法)

    近100算法,有利于学习java算法。值得好好学习和借鉴。

    JAVA近百种算法大全

    最近找到的JAVA近百种算法大全 分享一下 java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料,需要的童鞋来下载吧!

Global site tag (gtag.js) - Google Analytics