0
点赞
收藏
分享

微信扫一扫

NC22 合并两个有序的数组

夏沐沐 2022-03-19 阅读 43
C++

描述

给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组.

class Solution
{
	///方法1:双指针
	void merge(int A[], int m, int B[], int n)
	{
		int *result = new int[m + n];
		int p1=0, p2=0;
		int i = 0;
		while (p1 < m&&p2 < n)
		{
			if (A[p1] <= B[p2])
			{
				result[i] = A[p1];
				p1++;
			}
			else
			{
				result[i] = B[p2];
				p2++;
			}
			++i;
		}
		while (p1 < m)
		{
			result[i] = A[p1];
			++i;
			++p1;
		}
		while (p2 < n)
		{
			result[i] = B[p2];
			++i;
			++p2;
		}
		
		for (int j = 0; j < m + n; j++)
		{
			A[j] = result[j];
		}
	}
	
	///方法2:合并排序
	void merge(int A[], int m, int B[], int n)
	{
		for (int i = 0; i < n; i++)
		{
			A[m + i] = B[i];
		}	
		sort(A, A + m + n);//默认升序
	}
};
举报

相关推荐

0 条评论