首页 > 代码库 > Leetcode:Merge Sorted Array 归并排序

Leetcode:Merge Sorted Array 归并排序

Sorted Array:

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 (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.

 

题解分析:

归并排序

注意:排序结果不能申请另外的内存空间,直接存储在数组A中,所以此时 应该从后往前进行结果数组的填充,防止覆盖掉原数组A中元素

class Solution {public:    void merge(int A[], int m, int B[], int n) {        assert(A != NULL && B != NULL && m >= 0 && n >= 0);        int ia = m - 1;        int ib = n - 1;        int idx = m + n - 1;        while (ia >= 0 && ib >= 0) {            if (A[ia] >= B[ib]) {                A[idx--] = A[ia--];            } else {                A[idx--] = B[ib--];            }        }        while (ia >= 0) {            A[idx--] = A[ia--];        }        while (ib >= 0) {            A[idx--] = B[ib--];        }    }};