(C++)合併排序的數組

給定兩個排序後的數組 A 和 B,其中 A 的末端有足夠的緩衝空間容納 B.
編寫一個方法,將 B 合併入 A 並排序。初始化 A 和 B 的元素數量分別爲 m 和 n。

A = [1,2,3,0,0,0] .m = 6
B = [2,5,6].n = 3

class Solution1 {
public:
	void merge(vector<int>& A, int m, vector<int>& B, int n) {
		
		for (int i = 0; i != n; i++)
		{
			A[n + i] = B[i];
		}
		sort(A.begin(), A.end());
	}
};


int main()
{
	vector<int> A;
	A.push_back(1);
	A.push_back(2);
	A.push_back(3);
	A.push_back(0);
	A.push_back(0);
	A.push_back(0);
	cout <<"A的大小:"<<A.size() << endl;

	vector<int> B;
	B.push_back(2);
	B.push_back(5);
	B.push_back(6);
	cout <<"B的大小:"<<B.size() << endl;

	Solution1 S1;

	int m = A.size();
	int n = B.size();
	S1.merge(A, m, B, n);

	for (int i = 0; i < A.size(); i++)
	{
		cout << A[i] << endl;
	}

	system("pause");
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章