博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS - 递归
阅读量:6568 次
发布时间:2019-06-24

本文共 510 字,大约阅读时间需要 1 分钟。

递归

 

递归的理解就是自己调用自己,C#中也是这么理解的,将满足的条件返回,不满足的时候自己调用自己

object-c:

- (int)sum:(int)num{

  if(num == 0){

    return num;

  }

  return num + [self sum:num - 1];

}

 

递归:

  1. 有一个明确的出口

  2.不满足条件的时候,自己调用自己

 

block:

static int(^sumBlock)(int) = ^ (int num){

  if(num == 0){

    return num;

  }

  return num + sumBlock(num - 1);

}

注意:

block在自己调用自己的时候,要能准确的在内存中找到'block'函数的入口,因此需要使用'static'修饰符号.

 

1. 每次调用一次自己,系统都会开辟一个栈桢记录临时变量和参数

2.递归次数过多,会出现溢出错误

3.移动开发中不建议使用递归算法,现在主线程栈去只有512k

 

转载于:https://www.cnblogs.com/DreamLinku/p/5743274.html

你可能感兴趣的文章
Ubantu下安装jdk 教程
查看>>
ActiveMQ入门实例
查看>>
linux安装至少有哪两个分区,各自作用是什么?
查看>>
swoole 安装和简单实用
查看>>
文件系统 第八次迭代 VFS相关说明
查看>>
速读《构建之法:现代软件工程》提问
查看>>
SpringCloud注册中心环境搭建euraka
查看>>
ElasticSearch 安装使用
查看>>
React性能分析利器来了,妈妈再也不用担心我的React应用慢了(转)
查看>>
信息安全管理(1):组织的三个层面
查看>>
原生JS实现圆周运动
查看>>
文件的读写
查看>>
前端面试通关指南
查看>>
制作首页的显示列表。
查看>>
同样加班 不同收获
查看>>
六分钟学会创建Oracle表空间的步骤
查看>>
数据公钥加密和认证中的私钥公钥
查看>>
c语言中的位移位操作
查看>>
object-c语言的nonatomic,assign,copy,retain的区别
查看>>
js 正则之检测素数
查看>>