递归(分而治之)的思想

先来占个坑,主要是为了破除一下自己对于递归(分而治之)思想的迷雾。

打算介绍一下自己的心路历程与看书的经历。

前景提要:

1.递归会成指数式增加,如果数据量大,坚决不能用,但在数据量小时,显得优雅而简单,如同Python一样【此处Q一下算法题用Python的各路大神,各种疑难杂症一行代码解决┗|`O′|┛】;

2.递归必须有明显的结束条件,否则等着栈溢出吧;

3.子问题和父问题必须处理方式一致【当然,递归结束语句不算在内】;

1.什么是递归?

简单地说,递归就是函数调用自身的过程,但具体到语言上,有些微差别,例如C语言允许调用main函数递归,而C++不允许【没想到C++这么喜欢妥协的语言居然强硬了一次Σ(っ °Д °;)っ】

2.如何实现递归?

returnType funName(inputType Parameter){
    statement1;
    /*recursion*/
    funName(Parameter);
    statement2;
}

对于上述代码,运行过程中,statement1会顺序执行,statement2则会逆序执行。

刨个小坑,后续补一个C++递归的代码。

以单序列归并排序为例,statement1就可以只判断结束(即left<right);而statement2则是逆向的排序过程。

 还有很多细节知识。

但是递归的代码至少你记住三段即可:

1.传入参数;

2.退出条件;

3.递归;

4.处理(其实处理可以是递归前处理,也可以是递归后处理);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值