Algorithm 什么是更好的递归或迭代星形模式?

Algorithm 什么是更好的递归或迭代星形模式?,algorithm,performance,recursion,runtime,Algorithm,Performance,Recursion,Runtime,我需要做一个函数,得到int,做一个正方形的星形图案,就像我在函数中插入5,它会给我: ***** ***** ***** ***** ***** 我想知道什么是性能更好的递归或迭代解决方案?递归解决方案的成本是多少?您的迭代函数比递归函数工作得更好 for(i=1;i<=N;i++){ fact=fact*i; } 递归函数多次调用自身,直到false条件与递归调用不匹配。 让我们以下面的例子来了解更多 我们必须找到n=7的阶乘 n=7 对于上面的函

我需要做一个函数,得到int,做一个正方形的星形图案,就像我在函数中插入5,它会给我:

*****
*****
*****
*****
*****

我想知道什么是性能更好的递归或迭代解决方案?递归解决方案的成本是多少?

您的迭代函数比递归函数工作得更好

 for(i=1;i<=N;i++){    
      fact=fact*i;    
  }
递归函数多次调用自身,直到false条件与递归调用不匹配。 让我们以下面的例子来了解更多 我们必须找到n=7的阶乘 n=7

对于上面的函数n个递归调用,因此将使用n个堆栈。每个调用一个,因此它将使用O(N)辅助空间

其中迭代函数

 for(i=1;i<=N;i++){    
      fact=fact*i;    
  }

for(i=1;i很大程度上取决于编程语言。在大多数语言中,迭代实现可能更快,因为它避免了递归调用的开销。但我建议您只需实现两个版本并对其进行分析。它可能不存在(因为大多数编译器无论如何都会优化尾部递归),或者可以忽略不计,因为IO(打印星星的线条)将比您通过更改迭代/递归看到的要耗费大量时间