本文主要是介绍【18年扬大真题】给定有m个整数的递增有序数组a和有n个整数的递减有序数组b,将a数组和b数组归并为递增有序的数组c,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【18年扬大真题】
给定有m个整数的递增有序数组a和有n个整数的递减有序数组b,
将a数组和b数组归并为递增有序的数组c。
void Merge(int arr[],int m ,int brr[],int n,int crr[]) {int i = 0;int j = n-1;int k = 0;while(i < m&&j >= 0) {if (arr[i] < brr[j]) {crr[k] = arr[i];i++;k++;}else {crr[k] = brr[j];j--;k++;}}//把a或b剩下的接到c上去while(i < m) {crr[k] = arr[i];i++;k++;}while(j >= 0) {crr[k] = brr[j];j--;k++;}
}
int main()
{int a[20] = { 0 };//默认最大不超过20int b[20] = { 0 };int c[40] = { 0 };int m = 0;int n = 0;int i = 0;printf("请输入a数组大小:");scanf("%d", &m);printf("请输入递增有序的a数组数据:");for (i = 0;i < m;i++) {scanf("%d", &a[i]);}printf("请输入b数组大小:");scanf("%d", &n);printf("请输入递减有序的b数组数据:");for (i = 0;i < n;i++) {scanf("%d", &b[i]);}Merge(a,m,b,n,c);printf("合并后的数组c为:");for (i = 0;i < m + n;i++) {printf("%d ", c[i]);}
}
这篇关于【18年扬大真题】给定有m个整数的递增有序数组a和有n个整数的递减有序数组b,将a数组和b数组归并为递增有序的数组c的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!