有返回值,单支树形式:
long factorial(int n) //求阶乘
{
if(n==0|n==1)
return 1;
else
return factorial(n-1)*n;
}
有返回值, 二叉树形式:
long fibonacci(int n) //Fibonacci数列
{
if(n==0|n==1)
return 1;
else
return fibonacci(n-1)+fibonacci(n-2);
}
有返回值,多叉树形式(上一篇文章中的例子):
public static int count2(String subStr, int preAlphabetPosition,int allPossiblePosition)
{
int sum = 0;
if (subStr.charAt(0) != 'A' && subStr.charAt(0) != 'B')
throw new IllegalArgumentException();
if (subStr.length() == 1 & subStr.charAt(0) == 'A')
return sum += preAlphabetPosition + 1;
if (subStr.length() == 1 & subStr.charAt(0) == 'B')
return sum += allPossiblePosition - preAlphabetPosition;
if (subStr.charAt(0) == 'A')
{
for (int index = 0; index <= preAlphabetPosition; index++)
{
sum += count(subStr.substring(1), index,allPossiblePosition + 1);
}
return sum;
}
else// ='B'
{
for (int index = preAlphabetPosition + 1; index <= allPossiblePosition; index++)
{
sum += count(subStr.substring(1), index,allPossiblePosition + 1);
}
return sum;
}
}
无返回值,传引用,二叉树形式:
void quickSort(Object[] data,int min, int max)
{
int indexOfPartition;
if(max-min>0)
{
indexOfPartition=findPartition(data,min,max);
quickSort(data,min,indexOfPartition-1);
quickSort(data,indexOfPartition+1,max);
}
}
这里只是抛砖引玉,希望找到更多不一样的形式…………望高手多多指教
分享到:
相关推荐
本项目探讨了几种通过递归算法实现的分形图形的制作方法,包括分形树、斯宾斯基篓垫(Sierpinski Triangle)、Couch曲线以及分形矩形。这些图形的生成不仅展示了数学的美感,也是计算机图形学领域的重要研究内容。 ...
在.NET编程环境中,递归算法是一种强大的工具,它允许函数或方法调用自身来解决复杂问题。递归的核心思想是将大问题分解为相同或相似的小问题,直到问题变得足够简单,可以直接得出答案。这种解决问题的方式在数据...
二叉树可以通过两种主要方式创建:前向构造和后向构造。前向构造通常是动态地添加节点,根据需要逐步构建树;后向构造则可能涉及序列化和反序列化的过程,例如从已知的节点序列重建二叉树。在`test.cpp`中,可能会...
递归函数是实现递归思想的一种方式,通常在函数内部调用自身来解决复杂问题。本节将深入探讨递归思想和递归函数的概念,并通过几个具体的Python示例来阐述其工作原理和应用。 首先,理解递归的关键在于明确两个核心...
在比较递归和非递归算法时,我们通常关注以下几个方面: 1. **空间效率**:递归算法可能会占用更多的栈空间,因为每次递归调用都会增加栈的深度。而非递归算法则通常需要额外的数据结构来存储待处理的任务。 2. **...
在"易语言递归算法1"的源码中,可能会涉及以下几种常见的递归应用场景: 1. **斐波那契数列**:递归算法可以用来计算斐波那契数列,每一项都是前两项之和。例如,`fib(n) = fib(n-1) + fib(n-2)`,其中`fib(0) = 0`...
递归算法常用于以下几种典型问题: - **阶乘计算**:如计算n!,可以定义递归函数`fact(n)`,当n为1时返回1,否则返回`n * fact(n-1)`。 - **斐波那契数列**:递归地定义F(n)为F(n-1) + F(n-2),其中F(0) = 0,F(1)...
在C#编程中,递归是一种强大的工具,常用于解决涉及层次结构或树形结构的问题,比如在文件系统中查找特定目录或文件。本话题主要关注如何使用递归方法遍历指定文件夹及其所有子目录。我们将探讨以下几个关键知识点:...
在二分搜索中,递归实现通常分为以下几步: 1. 定义递归函数,接收数组、目标值、左边界和右边界作为参数。 2. 检查左边界是否大于右边界,如果是,表示已经搜索完所有可能的位置,返回-1(通常表示未找到目标值)...
在递归下降分析中,有几种关键的函数类型: 1. **主解析函数**:通常对应文法的起始符号,它启动整个解析过程。 2. **辅助函数**:对应文法中的其他非终结符,它们被主解析函数或其他辅助函数调用。 3. **终端处理...
实现分页通常有两种方式:客户端分页和服务器端分页。客户端分页是在浏览器端进行,仅加载用户当前查看的页面数据;服务器端分页则是在服务器端完成,返回用户请求的特定页数据。 递归显示: 递归是一种编程技术,...
对于二叉树,我们可以实现以下几种递归遍历方法: 1. **前序遍历**:首先访问根节点,然后递归遍历左子树,最后遍历右子树。 2. **中序遍历**:首先递归遍历左子树,然后访问根节点,最后遍历右子树。对于二叉排序...
根据给定的信息,本文将详细解析递归在C语言中的应用及其实现方式,并通过一个具体实例来深入探讨递归的思想和技术要点。 ### 一、递归的基本概念 递归是一种解决问题的方法,它通过调用自身来求解问题。递归通常...
### Java中的递归详解 ...综上所述,递归是一种强大的编程技术,能够帮助我们以简洁高效的方式解决许多问题。然而,在实际应用中,也需要根据具体情况选择合适的算法,并注意递归带来的潜在问题。
递归算法是一种编程技术,它通过函数或子过程直接或间接地调用自身来解决问题。在计算机科学中,递归通常用于简化复杂问题的解决,因为它可以使算法的描述更为简洁且易于理解。递归算法的核心在于将大问题分解为规模...
在易语言中,可以通过尾递归优化、记忆化(存储已计算过的子问题结果)等方式提高递归算法的性能。 6. **应用示例**:递归算法在易语言中可以应用于多种场景,如: - **斐波那契序列**:计算斐波那契数列的第n项,...
总的来说,递归是理解和操作动态树的重要工具,它提供了一种简洁、清晰的解决问题的方式。无论是遍历、搜索、构造还是修改树结构,递归都能发挥关键作用。在实际编程中,掌握递归的使用技巧,尤其是应用于动态树,...
在编程领域,递归是一种强大的思维方式,它通过函数或方法自我调用来解决复杂问题。递归的核心在于将大问题分解为相同或相似的小问题,并通过解决问题的子集来解决整个问题。这种技术广泛应用于数据结构(如树和图的...
递归是一种重要的编程概念,尤其在Java这样的面向对象语言中,它被广泛应用于解决各种复杂问题。递归指的是一个函数或方法在其定义中调用自身的过程。这种技术源自数学和计算机科学,它允许通过简化问题的规模来解决...
递归递推是一种在计算机科学和编程中广泛使用的解决问题的方法,尤其在算法设计和数据结构中扮演着重要角色。在C++中实现递归递推,通常涉及以下几个关键步骤: 1. **定义基本条件**:首先,我们需要确定递归过程的...