原题:
假设有两个有序的整型数组int *a1, int *a2,长度分别为m和n.试用C语言写出一个函数选取两个数组中最大的K个值(K可能大于m+n)写到int *a3中,保持a3降序,并返回a3实际的长度。
函数原型为int merge(int *a3, int *a1, int m, int *a2, int n, int k)
解题思路:此题为两个有序数组的合并:
设置两个下标索引 i和j,逐个比较a1[i]和a2[j],大的进入a3;
当a1或者a2已经全部被排序,就将另一个数组部分拷贝到a3.