题目:数组
有两个排序的数组A1和A2, 内存在A1的末尾有足够多的空余空间容纳A2,请实现一个函数,把A2中的全部数组 插入到A1中而且全部的数字都是排序的。数据结构
分析:函数
1.在内存中数组是线性表数据结构,数据都是按顺序储存的,若是从数组头部进行归并排序, 会出现一个数字屡次复制的现象,内存开销比较大,从后往前复制会减小数字移动次数,减少开支。3d
2.数组长度固定,先用指针指向A1和A2以及归并后A1的尾部下坐标。指针
3.比较A1和A2指针处数字大小,把较大的数字放到归并后A1指针的位置,同时,较大数字所在数组和归并后A1指针向前移一个位置。cdn
4.若是A2中还有元素没有插入到A1中,则所有插入到A1的前面。blog
案列:排序
以数组A1[7,8,9,11]和A2[4,5,8,10]为例,初始时指针指向A1中的11,A2中的10,归并后A1的尾部下坐标内存
比较11和10,11大于10,把11复制到归并后A1尾部,A1和归并后A1指针向前移一个单位,A1指针指向9。it
同理,比较10大于9,把10复制到归并后A1尾部,A2和归并后A1指针向前移一个单位,A2指针指向8
依次排序,直到归并成一个递增数组。
参考代码: