非递归实现归并排序

Posted ssdut_yrp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非递归实现归并排序相关的知识,希望对你有一定的参考价值。

归并算法的中心是归并两个已经有序的数组

public class MergeApp 
    /**
     * @param args
     */
    public static void main(String[] args) 
        // TODO Auto-generated method stub
        int[] arrayA=23,47,81,95;
        int[] arrayB=7,14,39,55,62,74;
        int[] arrayC=new int[10];
        merge(arrayA, 4, arrayB, 6, arrayC);
        display(arrayC, 10);
    

    public static void merge(int[] arrayA,int sizeA,int[] arrayB,int sizeB,int[] arrayC)
        int aDex=0,bDex=0,cDex=0;
        while(aDex<sizeA&&bDex<sizeB)//neither array empty
            if(arrayA[aDex]<arrayB[bDex])
                arrayC[cDex++]=arrayA[aDex++];
            
            else
                arrayC[cDex++]=arrayB[bDex++];
            
        
        while(aDex<sizeA)//arrayB is Empty
            arrayC[cDex++]=arrayA[aDex++];
        
        while(bDex<sizeB)
            arrayC[cDex++]=arrayB[bDex++];
        
    

    public static void display(int[] theArray,int size)
        for(int j=0;j<size;j++)
            System.out.print(theArray[j]+" ");
        
        System.out.println("");
    

以上是关于非递归实现归并排序的主要内容,如果未能解决你的问题,请参考以下文章

归并排序 - 递归非递归实现java

归并排序详解(MergeSort)递归和非递归实现

归并排序(非递归,Java实现)

排序3-选择排序与归并排序(递归实现+非递归实现)

归并排序(非递归实现)

javascript实现非递归--归并排序