美文网首页
5.遍历列表

5.遍历列表

作者: newlisp | 来源:发表于2019-11-28 12:48 被阅读0次

递归还是迭代?

递归可以让很多算法有良好的可读性, 但在某些情况下效率却低下. newLISP 有很多的迭代构造器和高阶函数,比如 flat 或者系统自带的 XML 函数, 其内部使用递归. 大部分情况下,没有必要自己定义递归算法。.

有时,非递归解决方案可以更快、更节省系统资源。.

; classic recursion

; slow and resource hungry

(define (fib n)

    (if (< n 2) 1

        (+  (fib (- n 1))

            (fib (- n 2)))))

上面的递归方案,由于频繁的调用开销执行很慢。递归解决方案使用了大量内存来保存递归调用中的中间结果和冗余结果。

; iteration

; fast and also returns the whole list

(define (fibo n , f)

    (set 'f '(1 0))

    (dotimes (i n)

        (push (+ (f 0) (f 1)) f)) )

上面的迭代解决方案速度快,占用的内存少。

相关文章

  • 5.遍历列表

    递归还是迭代? 递归可以让很多算法有良好的可读性, 但在某些情况下效率却低下. newLISP 有很多的迭代构造器...

  • Python

    一.列表 1.遍历列表 通过下标遍历列表元素 ;通过for循环遍历列表元素;通过enumerate函数处理列表之后...

  • python(3):操作列表

    1.使用for循环遍历整个列表 2.避免缩进错误 3.创建数值列表 4.使用列表的一部分,切片 5.元组:将不可修...

  • Python列表操作:遍历、range()、列表解析、列表切片、

    列表操作:遍历、range()、列表解析、列表切片、列表复制、元组 1. 遍历列表 记得for ...... :有...

  • 2020年4月9日 第四章 序列-2

    第四章 序列-2 4.3 列表3 初识列表 列表的创建 访问列表元素与切片 列表的遍历 直接遍历 利用索引遍历 利...

  • Python操作列表复盘(57)

    今天来回顾一下操作列表的知识点:1.遍历整个列表。2.避免缩进错误。3.创建数值列表。4.使用列表的一部分。5.元...

  • 列表的遍历与运算

    列表的遍历 列表的遍历一般通过while或for循环实现。 1. 通过while循环遍历列表 通过while循环变...

  • python-操作列表

    1.遍历列表:For循环 2.创建数字列表:range() 3.使用部分列表:切片,遍历,复制

  • Python中的列表和字典遍历

    列表、字典的遍历有很多技巧,如何写出简洁优雅的代码,可能需要了解如下知识: 列表遍历 字典遍历 列表迭代器 字典迭...

  • Python:操作列表

    遍历列表 遍历列表可以使用Python中的for循环: 创建数字列表 使用range() 可以使用range()函...

网友评论

      本文标题:5.遍历列表

      本文链接:https://www.haomeiwen.com/subject/bdtbwctx.html