爱吃瓜子的克鲁克山 2022-10-29 00:19 采纳率: 30%
浏览 25

谁知道这个程序的时间复杂度

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n;
	cin>>n;
	++n;
	map<int,vector<int>> a;
	a[1].push_back(2);
	for(int i=2;i<n;++i)
	{
		for(int j=1;j<i;++j)
		{
			for(int k=0;k<a[j].size();++k)
			{
				a[i].push_back(a[j][k]+2);
				a[i].push_back(a[j][k]-2);
				a[i].push_back(a[j][k]*2);
				if(a[j][k]%2==0)
				{
					a[i].push_back(a[j][k]/2);
				}
			}
		}
	}
	for(int i=1;i<n;++i)
	{
		cout<<i<<":";
		sort(a[i].begin(),a[i].end());
		for(int j=0;j<a[i].size();++j)
		{
			if(a[i][j-1]!=a[i][j])
			{
				cout<<a[i][j]<<' ';
			}
		}
		cout<<endl;
	}
	return 0;
}
  • 写回答

1条回答 默认 最新

  • qybao 2022-10-29 03:50
    关注

    之前看错了,以为for k是常数级别
    试算了一下,是阶乘级别
    数据生成的时候
    i 2 3 4 5
    j 1 2 3 4
    k 1 2x4 3x2x4 4x3x2x4
    时间复杂度=1+2x4+3x2x4+4x3x2x4 ...
    约为(1+2!+3!+4!+...+n!)x4
    所以应该是O(n!)

    数据输出的时候
    i 1 2 3 4
    j 1 4 2x4 3x2x4
    也是阶乘级别 O(n!)

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月29日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!