【算法分析】
将两组数组分别存在 aaa,bbb 数组中,合并的结果存在 ccc 数组中。
考虑归并排序中合并的方法,iii,jjj 为两个数组的初始位置赋值为 111,cntcntcnt 初始化为 000 表示 ccc 数组的初始位置。
while循环条件为:i <= n && j <= m,在循环中:
如果 a[i]<b[j]a[i]<b[j]a[i]<b[j],表示 a[i]a[i]a[i] 的值在 b[j]b[j]b[j] 前面,将
a[i]a[i]a[i] 的值赋给 c[cnt]c[cnt]c[cnt],i++,cnt++,下标加 111 进行下一轮比较。
否则 b[j]b[j]b[j] 的值在 a[i]a[i]a[i] 前面,将 b[j]b[j]b[j] 的值赋给 c[cnt]c[cnt]c[cnt],j++,cnt++,下标加 111 进行下一轮比较。
循环结束后,aaa 数组和 bbb 数组中可能存在剩下的元素没有赋值,将剩下的元素存在 ccc 数组中。
最后输出 ccc 数组。
【参考代码】
【时间复杂度】
O(n+m)O(n+m)O(n+m)
【预计得分】
100pts100pts100pts