子函数merge()

上传人:wt****50 文档编号:37570558 上传时间:2018-04-18 格式:DOC 页数:3 大小:19.50KB
返回 下载 相关 举报
子函数merge()_第1页
第1页 / 共3页
子函数merge()_第2页
第2页 / 共3页
子函数merge()_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《子函数merge()》由会员分享,可在线阅读,更多相关《子函数merge()(3页珍藏版)》请在金锄头文库上搜索。

1、合并排序中用到的子函数 merge(),功能是合并两个有序的子数组,其算法如下:输入:整数数组 A,下标 p,q,r,元素个数 m。ApAq及 Aq+1Ar已按递增顺序排序输出:按递增顺序排序的子数组 ApAr题意:合并两个递增子数组题意:合并两个递增子数组 ApAqApAq及及 Aq+1ArAq+1Ar,合并后按递,合并后按递增顺序排序。增顺序排序。1.void merge(int A,int p,int q,int r,int m)2.3.int *bp=new intm;分配缓冲区,存放被排序的元素分配缓冲区,存放被排序的元素4.int i,j,k;5.i=p;j=q+1;k=0;i i

2、 表示子数组表示子数组 ApAqApAq中当前元素所在的位置;中当前元素所在的位置;j j 表示子数组表示子数组Aq+1ArAq+1Ar中当前元素所在的位置中当前元素所在的位置6.while(i=q较大的元素后装入临时数组较大的元素后装入临时数组 bpbp11.12.if(i=q+1)如果子数组如果子数组 ApAqApAq中的元素已经全部装入临时数组中的元素已经全部装入临时数组 bpbp(先装(先装入的是较小的元素)入的是较小的元素)13.for(;j=r;j+)14.bpk+=Aj;那么就将子数组那么就将子数组 Aq+1ArAq+1Ar中剩下的元素全部装入临时数组中剩下的元素全部装入临时数组

3、 bpbp15.else否则一就定是子数组否则一就定是子数组 Aq+1ArAq+1Ar中的元素已经全部装入临时数组中的元素已经全部装入临时数组bpbp(先装入的是较小的元素)(先装入的是较小的元素)16.for(;i=q;i+)17.bpk+=Ai;于是,将子数组于是,将子数组 ApAqApAq中剩下的元素全部装入临时数组中剩下的元素全部装入临时数组 bpbp18.k=0;为将临时数组为将临时数组 bpk+bpk+中元素复制到中元素复制到 AiAi做准备,从第做准备,从第 0 0 个元素开个元素开始复制始复制19.for(i=p;i=r;i+)20.Ai=bpk+;将临时数组将临时数组 bpk+bpk+中元素复制到中元素复制到 AiAi21.delete bp;收回缓冲区收回缓冲区22.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号