Merge Sorted Array

来源:互联网 发布:在淘宝免费买东西app 编辑:程序博客网 时间:2024/05/29 16:58

Question:

Given two sorted integer arrays A and B, merge B into A as one sorted array.

Note:
You may assume that A has enough space to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.

//********** Hints ************

又是150原题,不会的自罚三杯

//*****************************

Solution:

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int length = m + n;
        
        if(n == 0)
            return;
            
        int i = m-1;
        int j = n-1;
        
        while(i>=0 && j>=0){
            if(A[i] <= B[j]){
                A[length-1] = B[j];
                j = j-1;
            }
            else{
                A[length-1] = A[i];
                i = i-1;
            }
            length-=1;
        }
        
        if(i < 0){
            for(int k = 0; k<= j;k++){
                A[k] = B[k];
            }
        }
    }
}



0 0