数据结构-循环和递归比较(31)

来源:互联网 发布:http dev.mysql.com 编辑:程序博客网 时间:2024/05/22 08:29

源代码:

#include <stdio.h>  #include <time.h>clock_t start, stop;double duration;void print1(int n);  void print2(int n);    int main() {      int n;      scanf("%d", &n);            start = clock(); print1(n);     //print2(n);stop = clock();duration = ((double)(stop - start)) / CLK_TCK;printf("%lf\n",duration);      return 0;  }    void print1(int n) {      if (n) {          print1(n-1);          printf("%d\n",n);      }            return;  }    void print2(int n) {      int i;      for (i=1; i<=n; i++) {          printf("%d ",i);      }      return;  }  


感悟:

递归虽然用起来比较方便,但会占用大量的空间,该例子当n为100w时可以发现,循环输出会得到相应结果,但通过递归则程序会终止。原因就是递归将内存用尽,导致程序退出。



0 0
原创粉丝点击