merge.cpp

来自「并归排序」· C++ 代码 · 共 62 行

CPP
62
字号
#include <iostream>

using namespace std;
void merge(long list1[], long list2[], long list[],int l, int m)
{
	int i = 0;
	int j = 0;
	int k = 0;
	while(i < l&& j < m)
	{
		if(list1[i] < list2[j])
		{
			list[k++] = list1[i++];
		}
		else
		{
			list[k++] = list2[j++];
		}
	}
	if(i < l)
	{
		for( int n1 = k, n2 = i; n1 < l+m && n2 < l; n1++, n2++)
		{
			list[n1] = list1[n2];
		}
	}
	if(j < m)
	{
		for( int n1 = k, n2 = j; n1 < l+m && n2 < m; n1++, n2++)
		{
			list[n1] = list2[n2];
		}	
	}
	
}

void main()
{
	int number1,number2;
	cout << "input number1:";
	cin >> number1;
	cout << "input number2:";
	cin >> number2;
	long list1[1000];
	long list2[1000];
	long list[1000];
	for(int i = 0;i < number1; i++)
	{
		cin >> list1[i];
	}
	for(i = 0;i < number2; i++)
	{
		cin >> list2[i];
	}
	merge(list1,list2,list,number1,number2);

	cout << "output list:";
	for(i = 0 ; i < number1+ number2; i++)
	{
		cout << list[i] << endl;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?