程序运行时长测试

本文通过一个C++程序展示了递归交换数组元素的过程,随着元素数量增加,运行时间显著增长,揭示了其高时间复杂度。程序中定义了一个Prem函数,用于在数组内递归地交换元素,并在main函数中计算了交换0-9、0-10、0-11个元素所需的时间,分别为0.137s、1.544s和16.952s,强调了递归操作在大规模数据时的效率问题。

我的笔记本运行这段程序:
0 ——9共十个数 :0.137s
0——10共十一个数:1.544s
0——11共十二个数:16.952s

#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#include<math.h>
#include<algorithm>
#include<ctime>
using namespace std;
#define INF 0x3f3f3f3f
#define lson 2*i    
#define rson 2*i+1    
#define LS l,mid,lson    
#define RS mid+1,r,rson    
#define UP(i,x,y) for(i=x;i<=y;i++)    
#define DOWN(i,x,y) for(i=x;i>=y;i--)    
#define MEM(a,x) memset(a,x,sizeof(a))    
#define W(a) while(a)    
#define gcd(a,b) __gcd(a,b)    
#define ll long long         
#define INF 0x3f3f3f3f    
#define EXP 1e-8    
#define lowbit(x) (x&-x)
#define Swap(a,b){int temp =a;a=b;b=temp;}
int dat[] = { 1,2,3,4,5,6,8,9,10,32,15,18,32 };
int num = 0;
const int maxn = 1e5;
void Prem(int begin, int end)
{
	int i;
	if (begin == end)
		num++;
	else {
		for (i = begin; i <= end; i++)
		{
			Swap(dat[begin], dat[i]);
		    Prem(begin + 1, end);
			Swap(dat[begin], dat[i]);
		}

	}
}
int main()
{
	
	clock_t start, end;
	start = clock();
	Prem(0, 9);
	end = clock();
	cout << (double)(end - start) / CLOCKS_PER_SEC << endl;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值