更改

跳到导航 跳到搜索
添加17字节 、 2020年12月12日 (六) 20:55
第1,058行: 第1,058行:  
这段代码至少在某种程度上糅合了递归和迭代之间的界限。本质上,它是一个递归的实现,这是遍历文件系统的最佳方式。它也是直接递归和间接递归的一个例子。 '''<font color=''32CD32''> 方法 "rtraverse "是直接递归的例子,方法 "traverse "是则间接的,它调用 "rtraverse"。</font>'''这个例子不需要 "基本情况",因为在给定的文件系统中文件和目录的数量总是有限的。
 
这段代码至少在某种程度上糅合了递归和迭代之间的界限。本质上,它是一个递归的实现,这是遍历文件系统的最佳方式。它也是直接递归和间接递归的一个例子。 '''<font color=''32CD32''> 方法 "rtraverse "是直接递归的例子,方法 "traverse "是则间接的,它调用 "rtraverse"。</font>'''这个例子不需要 "基本情况",因为在给定的文件系统中文件和目录的数量总是有限的。
   −
==Implementation issues==
+
==实现问题==
执行问题
+
 
 
In actual implementation, rather than a pure recursive function (single check for base case, otherwise recursive step), a number of modifications may be made, for purposes of clarity or efficiency. These include:
 
In actual implementation, rather than a pure recursive function (single check for base case, otherwise recursive step), a number of modifications may be made, for purposes of clarity or efficiency. These include:
   −
在实际执行中,为了清晰或效率,可能会进行大量的修改,而不是纯粹的递归函数(对基本情况进行单一检查,否则递归步骤)。这些修改包括:
+
如果不是纯粹的递归函数(对基本情况进行单一检查,否则递归步骤),而是实际的代码实现,则为了清晰或效率起见,可能会进行大量的修改。这些修改包括:
    
* Wrapper function (at top)
 
* Wrapper function (at top)
包装函数(在顶部)
   
* Short-circuiting the base case, aka "Arm's-length recursion" (at bottom)
 
* Short-circuiting the base case, aka "Arm's-length recursion" (at bottom)
基本情况下的短路,也就是 "正常递归"(在底部)
   
* Hybrid algorithm (at bottom) – switching to a different algorithm once data is small enough
 
* Hybrid algorithm (at bottom) – switching to a different algorithm once data is small enough
混合算法(在底部)--一旦数据足够小,就切换到不同的算法
+
 
 +
* 包装函数(在顶部)
 +
* 基本情况下的短路,也就是 "正常递归"(在底部)
 +
* 混合算法(在底部)——一旦数据足够小,就切换到另一个的算法
    
On the basis of elegance, wrapper functions are generally approved, while short-circuiting the base case is frowned upon, particularly in academia. Hybrid algorithms are often used for efficiency, to reduce the overhead of recursion in small cases, and arm's-length recursion is a special case of this.
 
On the basis of elegance, wrapper functions are generally approved, while short-circuiting the base case is frowned upon, particularly in academia. Hybrid algorithms are often used for efficiency, to reduce the overhead of recursion in small cases, and arm's-length recursion is a special case of this.
   −
在优雅的基础上,包装函数一般都会被认可,而对基本情况的短路则是不屑一顾的,尤其是在学术界。混合算法往往是为了提高效率,减少小情况下递归的开销,正常递归是一种特殊情况。
+
在优雅简洁的基础上,包装函数一般都会被接受,而对基本情况的短路则是被轻视的,尤其是在学术界。混合算法往往是为了提高效率,减少小情况下递归的开销,正常递归是一种特殊情况。
    
===Wrapper function===
 
===Wrapper function===
370

个编辑

导航菜单