看看递归和迭代在大循环次数下的效率。

本文通过斐波那契数列的计算,对比了递归和迭代两种算法在大循环次数下的运行效率。实验结果显示,在处理大规模数据时,迭代算法表现出更好的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看看递归和迭代在大循环次数下的效率。
C++学生汪,只能看看黑窗口,更深层的道理还请前辈们多多指点,抱拳抱拳~
老生常谈,还是以斐波那契兔子为例,贴代码~

	#include <iostream>
	#include <atltime.h>
	using namespace std;
	
	long long  recurse(int num);
	long long iterate(int num);

	int main()
	{
		clock_t begin1, end1,begin2,end2;
		/* 来看一看两种方法的计算时间*/
		cout << "递归基数:40"<< endl;
		begin1 = clock();
		recurse(40);
		end1 = clock();
		cout << "递归耗时:" << (double)(end1 - begin1) / CLOCKS_PER_SEC << "s" << endl << endl << endl;

		cout << "迭代基数:100000000" << endl;
		begin2 = clock();
		iterate(100000000);
		end2 = clock();
		cout << "迭代耗时:" << (double)(end2 - begin2) / CLOCKS_PER_SEC << "s" << endl;

		cin.get();
		return 0;
	}
	
	//递归
	long long  recurse(int num)
	{
		if (num == 1 || num == 2)
		{
			return 1;
		}
		else
		{
			return recurse(num - 1) + recurse(num - 2);
		}
	}
	//迭代
	long long iterate(int num)
	{
		if (num == 1 || num == 2)
		{
			return 1;
		}
		else
		{
			long long  f1 = 1L;
			long long  f2 = 1L;
			long long  f3 = 0;
			for (int i = 0; i < num - 2; i++)
			{
				f3 = f1 + f2;
				f1 = f2;
				f2 = f3;
			}
			return f3;
		}
	}

跑起来看:
在这里插入图片描述
看来大循环次数情况下,迭代要优于递归~ End

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值