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

问题描述 投票:-3回答:1

[我需要做一个获取整数并做正方形的星形的函数,就像我在函数中插入5会给我:

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

我想知道哪种方法具有更好的性能递归或迭代解决方案?递归解决方案的成本是多少?

algorithm performance recursion runtime
1个回答
0
投票

[您的迭代函数优于递归函数

递归函数多次调用自身,直到错误条件与递归调用不匹配为止。让我们以下面的例子来了解更多我们必须找到最多n的阶乘,其中n = 7n = 7;

int recfactorial(int n)
{
    if(n > 1)
        return n * recfactorial(n - 1);
    else
        return 1;
}

对于以上函数,需要进行n个递归调用,因此将使用n个堆栈。每个呼叫一个,因此它将使用O(N)个辅助空间。

迭代功能在哪里

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

您具有N个用于循环的变异,因此您的时间复杂度将为O(N)。您将不需要额外的空间即可完成整个工作,因此程序的辅助空间是恒定的,即O(1)

© www.soinside.com 2019 - 2024. All rights reserved.