两个数组合并排序的java实现

两个数组合并排序的java实现

本文主要描述了两个数组的合并排序,并用Java代码进行实现的两种方法

- 方法一
用于合并两个有序数组,默认升序

package com.cyl.day05;


/**
 *  数组A:“1,7,9,11,13,15,17,19”;   
 *  数组b:“2,4,6,8,10” ;      
 *  两个数组合并为数组c,按升序排列。
 * @author CLY
 *
 */
public class MergeSort {
    public static void main(String[] args) {
        int[]  a= {1,7,9,11,13,15,17,19};
        int[] b = {2,4,6,8,10};
        //调用printArray方法,并将merge方法的返回值传给printArray
        printArray(merge(a, b));

    }

    /**
     * 
     * @param a:a数组
     * @param b:b数组
     * @return c:c数组
     */
    public static int[] merge(int[] a,int [] b) {

        int[] c = new int[a.length+b.length];
        //i用于标记数组a
        int i=0;
        //j用于标记数组b
        int j=0;
        //用于标记数组c
        int k=0;

        //a,b数组都有元素时
        while(i<a.length && j<b.length) {
            if(a[i]<b[j]) {
                c[k++] = a[i++];
            }else {
                c[k++] = b[j++];
            }
        }

        //若a有剩余
        while(i<a.length) {
            c[k++] = a[i++];
        }

        //若b有剩余
        while(j<b.length) {
            c[k++] = b[j++];
        }

        return c;

    }

    //打印数组
    public static void printArray(int[]  arr) {
        for(int i:arr) {
            System.out.print(i+ "  ");
        }
    }



}
  • 方法二
    此法用于将两个乱序的数组合并,然后对新合并成的数组进行排序
package com.cyl.day05;

import java.util.ArrayList;
import java.util.Collections;

/**
 *用于将两个乱序的数组合并,然后排序
 *@author cly
 */
public class MergeSortTwo {

        public static void main(String[] args) {

            //声明两个无序数组
            int[] a = {1,4,7,9,2,3,5,0 };
            int[] b = { 3,8,6,9,5 };

            //声明并定义新数组的长度
            int[] newArray = new int[a.length + b.length];

            //先将数组a中的所有元素添加到新数组中
            for (int i = 0; i < a.length; i++) {
                newArray[i] = a[i];
            }


            //再将数组b中的元素添加到新数组中
            for (int i = a.length, j = 0; i < a.length + b.length; i++, j++) {
                newArray[i] = b[j];
            }

            //利用数组列表对新数组进行排序
            ArrayList arr = new ArrayList();
            for(int i=0; i<newArray.length;i++){
                arr.add(newArray[i]);
            }
            Collections.sort(arr);
            //输出新数组
            System.out.println(arr);
        }

}

猜你喜欢

转载自blog.csdn.net/qq_42846655/article/details/81454195
今日推荐