24小时热门版块排行榜    

查看: 609  |  回复: 3

冰雨hust

铁虫 (小有名气)

[求助] 归并中的递归问题

对于归并排序中
void mergeSort(int a,int b)
{
if(a<b)
{
int mid=(a+b)/2;--------(1)
mergeSort(a,mid);---------(2)
mergeSort(mid+1,b);--------(3)
merge(a,mid,b);--------(4)

}
}
这个程序的执行过程是咋样的啊,执行到(2)时要用自身的函数,递归调用,是不是一直递归调用到递归结束,再执行(3),又继续递归调用,直到结束,再执行(4),程序结束啊?各位大侠指点下啊~~~
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
jjdg: 金币+2, 感谢参与 2013-06-27 00:34:16
递归的问题,你要抽象出来"自相似结构"部分.不要管他怎么又调用自身,只分析步骤即可.

简单来说,mergeSort(a,b)是这样一个函数,实现对于a到b之间的元素进行归并排序(a<b)
具体步骤是:
找到中点mid,
用同样的办法(归并排序)a到mid得到排好序的序列A
用同样的办法(归并排序)mid+1到b得到排好序的序列B
合并序列A和B得到完整的排序序列C(C=A U B,但是是排好序的)
--------
一般会设置递归出口,上面的函数隐含了出口(就是a<b),当a==b或者a>b时会直接返回.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-06-26 20:47:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

冰雨hust

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2013-06-26 20:47:59
递归的问题,你要抽象出来"自相似结构"部分.不要管他怎么又调用自身,只分析步骤即可.

简单来说,mergeSort(a,b)是这样一个函数,实现对于a到b之间的元素进行归并排序(a<b)
具体步骤是:
找到中点mid, ...

那这个程序是怎样得到(归并排序)a到mid得到排好序的序列A呢?我先弄透彻点
3楼2013-06-26 21:09:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

引用回帖:
3楼: Originally posted by 冰雨hust at 2013-06-26 21:09:08
那这个程序是怎样得到(归并排序)a到mid得到排好序的序列A呢?我先弄透彻点...

这就是递归的意义所在啊,从a到mid排序调用的是自身(从a到b,这时候b=mid而已)
参数a<b是递归出口,也就是说当仅有一个元素(a==b)时,递归就结束了,然后一层层返回去.

你用一个简单的3个元素的数组[1,2,3]画出函数调用层次就一下子明白了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2013-06-27 00:14:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 冰雨hust 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 澳大利亚 Murdoch University 全奖博士招生(3个名额)地质化工冶金领域 +3 AI8RaGaPaSCR 2026-08-07 3/150 2026-08-13 14:15 by iu1c4A3rEPLS
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +22 Lanmanbaby 2026-08-09 36/1800 2026-08-12 22:50 by sdfapple719
[基金申请] 好奇怪的filecode +5 布布和一二 2026-08-08 6/300 2026-08-12 16:11 by 云上清扬
[基金申请] filecode +13 documentary 2026-08-10 15/750 2026-08-12 15:56 by 云上清扬
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +7 布布和一二 2026-08-10 10/500 2026-08-12 09:12 by 布布和一二
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 是这周出结果还是下周出结果? +3 yuleib84 2026-08-11 3/150 2026-08-11 21:53 by jnhyjjm
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +8 Tide man 2026-08-10 9/450 2026-08-11 20:39 by beefly
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +3 majunge000 2026-08-11 4/200 2026-08-11 20:13 by lch2012
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 静等基金结果 +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 化学口download_prp&amp;fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
信息提示
请填处理意见