合并排序的数组
实例要求
-
1、给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B;
-
2、编写一个方法,将 B 合并入 A 并排序;
-
3、初始化 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
实例分析
- 算法思想:
- 1、先合并到两个数组中长度较长的那个数组;
- 2、冒泡排序即可;
示例代码
void merge(int* A, int ASize, int m, int* B, int BSize, int n){int i ,j;int temp;for(i = 0; i < n; i++){A[i + m] = B[i];}for(i = 0; i < ASize - 1; i++){for(j = 0; j < ASize - i - 1; j++){if(A[j] > A[j+1]){temp = A[j];A[j] = A[j+1];A[j+1] = temp;}}}}
运行结果