您的位置:首页 > 其它

Cracking The Coding Interview 9.1

2014-04-23 13:50 253 查看
//原文:
//
//	You are given two sorted arrays, A and B, and A has a large enough buffer at the end to hold B. Write a method to merge B into A in sorted order.
//
//	译文:
//
//	A和B是两个有序数组(假设为递增序列),而且A的长度足以放下A和B中所有的元素, 写一个函数将数组B融入数组A,并使其有序。
#include <iostream>
using namespace std;
void mswap(int &a, int &b)
{
a = a^b;
b = a^b;
a = a^b;
}

void merge(int *a, int asize, int *b, int bsize)
{
int ka= asize - 1;
int kab = asize + bsize - 1;
for (int kb = bsize - 1; kb >-1; kb--)
{
while (b[kb] < a[ka])
{
a[kab] = a[ka];
kab--;
ka--;
}
a[kab] = b[kb];
kab--;
}
}

int main()
{
int a[20] = {4,5,9,11,14,22,33,34};
int b[5] = {1,3,7,10,12};
merge(a, 8, b, 5);
for (int i = 0;i <13; i++)
{
cout<<a[i]<<"  ";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: