zoukankan      html  css  js  c++  java
  • Merge 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 andn respectively.

    C++代码如下:

    #include<iostream>
    using namespace std;
    
    class Solution {
    public:
        void merge(int A[], int m, int B[], int n) {
            int i=m-1;
            int j=n-1;
            int k=m+n-1;
            while(i>=0&&j>=0)
            {
                if(A[i]>=B[j])
                {
                    A[k--]=A[i--];
                }
                else
                {
                    A[k--]=B[j--];
                }
            }
            while(i>=0)
            {
                A[k--]=A[i--];
            }
            while(j>=0)
            {
                A[k--]=B[j--];
            }
        }
    };
    
    int main()
    {
        int A[10]={1,3,5,7,9};
        int B[5]={2,4,6,8,10};
        Solution s;
        s.merge(A,5,B,5);
        for(auto a:A)
            cout<<a<<" ";
        cout<<endl;
    }

    运行结果:

    #include<iostream>
    using namespace std;
    
    class Solution
    {
    public:
        void merge(int A[], int m, int B[], int n)
        {
            if(n==0)
                return;
            int i,j;
            int index=m+n-1;
            i=m-1;
            j=n-1;
            while(i>=0&&j>=0)
            {
                if(A[i]>B[j])
                {
                    A[index]=A[i];
                    i--;
                    index--;
                }
                else
                {
                    A[index]=B[j];
                    j--;
                    index--;
                }
            }
            while(j>=0)
            {
               A[index]=B[j];
               index--;
               j--;
            }
            return;
        }
    };
    
    int main()
    {
        int A[10]={1,3,5,7,9};
        int B[5]={2,4,6,8,10};
        Solution s;
        s.merge(A,5,B,5);
        for(auto a:A)
            cout<<a<<" ";
        cout<<endl;
    }
    

      

  • 相关阅读:
    Eclipse 代码模板
    Eclipse 安装插件
    Eclipse 任务管理
    Eclipse 添加书签
    Eclipse 重构菜单
    Eclipse 浏览(Navigate)菜单浏览 Eclipse 工作空间
    Eclipse 查找
    Eclipse 悬浮提示
    Eclipse 快速修复
    Eclipse 内容辅助
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4096422.html
Copyright © 2011-2022 走看看