给定两个排序后的数组 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"); }