数组归并排序

题目数组

      有两个排序的数组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

      

依次排序,直到归并成一个递增数组。

参考代码

      

相关文章
相关标签/搜索