有一个二维数组m*n,数组内元素值的范围为【1,3】,用C++怎么样穷举这样的数组?时间复杂度为3∧(m×n)
3个回答
展开全部
a[m][n];
void lp(int i,int j)
{
int x;
if(i==m&&j==n) {输出结果; return; }
for(x=1;x<4;x++)
{
a[i][j] = x;
if(j==n-1) lp(i+1,0);
else lp(i,j+1);
}
}
复杂度说明: 数组每一个元素都可以选择1,2,3,所以每一个都有三种选择,总共有M*N个元素,所以总共有3^(m*n)种选择。
void lp(int i,int j)
{
int x;
if(i==m&&j==n) {输出结果; return; }
for(x=1;x<4;x++)
{
a[i][j] = x;
if(j==n-1) lp(i+1,0);
else lp(i,j+1);
}
}
复杂度说明: 数组每一个元素都可以选择1,2,3,所以每一个都有三种选择,总共有M*N个元素,所以总共有3^(m*n)种选择。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正常情况也是M*N O(n*m)
怎么可能 3的M*N 次方 越算越大
怎么可能 3的M*N 次方 越算越大
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是要时间复杂度为3∧(m×n)的穷举方法么
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询