本文共 731 字,大约阅读时间需要 2 分钟。
为了将两个已排序的数组 A 和 B 合并成一个有序数组,我们可以按照以下步骤进行:
这个方法确保了合并后的数组是已排序的。
题目描述:给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。编写一个方法,将 B 合并入 A 并排序。
初始化 A 和 B 的元素数量分别为 m 和 n。
示例:
输入: A = [1,2,3,0,0,0], m = 3; B = [2,5,6], n = 3
输出: [1,2,2,3,5,6]
说明:
A.length == n + m解答:
int cmp(const void *a, const void *b) { return *(int*)a - *(int*)b; } void merge(int* A, int ASize, int m, int* B, int BSize, int n) { memcpy(A + m, B, sizeof(int) * n); qsort(A, m + n, sizeof(int), cmp); }
运行结果:代码正确运行后,输出为 [1,2,2,3,5,6]。
转载地址:http://wvdzz.baihongyu.com/