整形数组合并

该博客介绍了一个接口CombineBySort,用于将两个已排序的整型数组按升序合并并去除重复元素。输入参数包括两个整型数组及它们的元素个数,输出为合并后的数组及其元素个数。博客提供了样例输入和输出,展示如何合并[-1, 0, 3, 2]和[1, 2, 5]得到[-1, 0, 1, 2, 3, 5]。" 97393674,8725556,Oracle11.2.0.4静默安装响应文件及跳过检查技巧,"['Oracle数据库', '安装教程', '静默模式', '免费安装', '配置选项']

题目标题:

将两个整型数组按照升序合并,并且过滤掉重复数组元素

接口说明:

原型:void CombineBySort(int* pArray1,int iArray1Num,int* pArray2,int iArray2Num,int* pOutputArray,int* iOutputNum);

输入参数:

int* pArray1 :整型数组1

intiArray1Num:数组1元素个数

int* pArray2 :整型数组2

intiArray2Num:数组2元素个数

输出参数(指针指向的内存区域保证有效):

int* pOutputArray:合并后的数组

int* iOutputNum:合并后数组元素个数

返回值: void

知识点: 排序,数组

输入:

第一个数组的个数

第一个数组的数值

第二个数组的个数

第二个数组的数值

输出:

合并之后的数组

样例输入:

3

1 2 5

4

-1 0 3 2

样例输出:

-101235

代码:

#include <iostream>
using namespace std;
void Init(int* num, int len)
{
	for (int i = 0; i < len; i++)
		cin >> num[i];
}
void Link(int* num, int* num1,int* num2,int len1,int len2)
{
	int i;
	for (i = 0; i < len1; i++)
		num[i] = num1[i];
	for (i = len1; i < len1 + len2; i++)
		num[i] = num2[i-len1];
}
void Sort(int* num, int len)
{
	int i, j,temp;
	for (i = 0; i < len - 1; i++)
		for (j = i + 1; j < len; j++)
			if (num[i]>num[j])
			{
				temp = num[i];
				num[i] = num[j];
				num[j] = temp;
			}
}
void Output(int* num, int len)
{
	int temp = 65535, i;
	for (i = 0; i < len; i++)
		if (num[i] != temp)
		{
			cout << num[i];
			temp = num[i];
		}
	cout << endl;
}
int main()
{
	int len1, len2, len, i, j, temp;
	cin >> len1;
	int* num1 = (int*)malloc(len1*sizeof(int));
	Init(num1, len1);
	cin >> len2;
	int* num2 = new int[len2];
	Init(num2, len2);
	len = len1 + len2;
	int* num = new int[len];
	Link(num, num1, num2, len1, len2);
	Sort(num, len);
	Output(num, len);
	return 0;
}
得分运行时间内存复杂度最大嵌套深度
100(100)47ms2068KB44


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值