非递归实现归并排序

来源:互联网 发布:数据透视表的高级用法 编辑:程序博客网 时间:2024/04/28 12:03

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

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("");    }}
1 0
原创粉丝点击