| 查看: 515 | 回复: 3 | |||
[求助]
归并中的递归问题
|
|
对于归并排序中 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),程序结束啊?各位大侠指点下啊~~~ |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有8人回复
最失望的一年
已经有17人回复
为什么nbs上溴 没有产物点出现呢
已经有6人回复
求推荐博导
已经有4人回复
存款400万可以在学校里躺平吗
已经有34人回复
求助一下有机合成大神
已经有4人回复
求推荐英文EI期刊
已经有5人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【转帖】《数据结构与算法分析》5000字缩写(上)
已经有8人回复
libralibra
至尊木虫 (著名写手)
骠骑将军
- 程序强帖: 40
- 应助: 817 (博后)
- 金币: 12914.1
- 红花: 64
- 帖子: 2238
- 在线: 287.3小时
- 虫号: 696514
- 注册: 2009-02-05
- 专业: 计算机软件
【答案】应助回帖
★ ★
感谢参与,应助指数 +1
jjdg: 金币+2, 感谢参与 2013-06-27 00:34:16
感谢参与,应助指数 +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时会直接返回. |

2楼2013-06-26 20:47:59
3楼2013-06-26 21:09:08
libralibra
至尊木虫 (著名写手)
骠骑将军
- 程序强帖: 40
- 应助: 817 (博后)
- 金币: 12914.1
- 红花: 64
- 帖子: 2238
- 在线: 287.3小时
- 虫号: 696514
- 注册: 2009-02-05
- 专业: 计算机软件

4楼2013-06-27 00:14:33













回复此楼