CC150 - 11.1

Question:

You are given two sorted arrays, A and B, where A has a large enough buffer at the end to hold B.
Write a method to merge B into A in sorted order.

 

package POJ;

public class Main {

    /**
     * 
     * 11.1 You are given two sorted arrays, A and B, where A has a large enough buffer at the end to hold B.
     * Write a method to merge B into A in sorted order.
     * 
     */
    public static void main(String[] args) {
        Main so = new Main();    
    }    
    public void merge(int[] a, int[] b, int lastA, int lastB){
        int indexA=lastA-1;
        int indexB=lastB-1;
        int indexMerged=lastA+lastB-1;
        while(indexA>=0&&indexB>=0){
            if(a[indexA]<b[indexB]){
                a[indexMerged]=b[indexB];
                indexB--;
                indexMerged--;
            }else{
                a[indexMerged]=a[indexA];
                indexA--;
                indexMerged--;
            }
        }
        while(indexB>=0){
            a[indexMerged]=b[indexB];
            indexB--;
            indexMerged--;
        }
    }
}

 

posted @ 2014-08-19 22:27  Phoebe815  阅读(143)  评论(0编辑  收藏  举报