合并两个有序数组

合并两个有序的数组

http://www.nowcoder.com/questionTerminal/89865d4375634fc484f3a24b7fe65665

使用插入排序的思想,首先创建简单的交换函数swap,然后每次读取数组B中一个元素,并与A中元素从后向前依次比较。如果小于前面的元素,则进行交换,否则break。直到结束。

class Solution{

public:
    void swap(int *a, int *b)
    {
        int temp = *a;
        *a = *b;
        *b = temp;
    }

    void merge(int A[], int m, int B[], int n)
    {
        for(int i=0; i<n; i++)
        {
            A[m] = B[i];
            for(int j=m-1; j>=0; j--)
            {
                if(A[j] > A[j+1]) swap(&A[j], &A[j+1]);
                else break;
            }
            m++;
        }
    }
};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务