码迷,mamicode.com
首页 > 编程语言 > 详细

使用O(n)的时间复杂度合并两个数组

时间:2015-05-28 16:18:46      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

题目描述:
有两个排序数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2,请实现一个函数,把A2中的所有数字插入到A1中并且所有的数字是有序的。

#include<iostream>
using namespace std;
void Merge(int A1[],int n,int A2[],int m)
{
    int i = n-1; int p = n+m-1;
    int j = m-1;
    while(p>i)
    {
        if(i>=0&&A1[i]>A2[j])
        {
            A1[p] = A1[i];
            p--;
            i--;
        }else{
            A1[p]=A2[j];
            j--;
            p--;
        }
    }
}
int main()
{
    int A1[]={11,13,15,17,19,0,0,0,0,0};
    int A2[]={2,4,6,8,10};
    Merge(A1,5,A2,5);
    for(int i = 0; i < 10;i++)
    {
        cout << A1[i] <<" ";
    }
}

使用O(n)的时间复杂度合并两个数组

标签:

原文地址:http://blog.csdn.net/leosha/article/details/46123163

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!