| 查看: 536 | 回复: 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),程序结束啊?各位大侠指点下啊~~~ |
» 猜你喜欢
版面费该交吗
已经有9人回复
体制内长辈说体制内绝大部分一辈子在底层,如同你们一样大部分普通教师忙且收入低
已经有13人回复
为什么中国大学工科教授们水了那么多所谓的顶会顶刊,但还是做不出宇树机器人?
已经有8人回复
面上可以超过30页吧?
已经有4人回复
“人文社科而论,许多学术研究还没有达到民国时期的水平”
已经有5人回复
什么是人一生最重要的?
已经有4人回复
今年春晚有几个节目很不错,点赞!
已经有12人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【转帖】《数据结构与算法分析》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













回复此楼