询问一个输出全组合算法的时间复杂度
询问一个输出全组合算法的时间复杂度,最好能说明一下怎么得来的,谢谢~~
#include <iostream>
#include <conio.h>
using namespace std;
bool L3( unsigned int &end, unsigned int staticStart, unsigned int &staticEnd ){
//终止判断
if( staticEnd >= end ){
return false;
}
unsigned int i = 0;
unsigned int j = 0;
for( i=staticEnd+1; i<=end; i++ ){
//1.输出Static Head
for( j=staticStart; j<=staticEnd; j++ ){
cout << j;
}
//2.输出变化值
cout << i << endl;
}
staticEnd++;
return true;
}
bool L2( unsigned int &end, unsigned int n ){
if( n > end ){
return false;
}
cout << n << endl;
unsigned int i = 0;
unsigned int iend = end - i;
unsigned int staticEnd = n;
while( L3( end, n, staticEnd ) ){
;
}
return true;
}
bool L1( unsigned int &end ){
if( end<1 ){
return false;
}
unsigned int i = 0;
for( i=1; i<=end; i++ ){
L2( end, i );
}
return true;
}
int main( void ){
unsigned int i = 0;
for( i=1; i<=10 ;i++ ){
system( "CLS" );
cout << "【" << i << "】的全组合数:" << endl;
cout << "--------------" << endl;
L1( i );
cout << "--------------" << endl;
cout << "按任意键继续..." << endl;
_getch( );
}
cout << "END" << endl;
_getch( );
return 1;
}
...全文
相关推荐
算法时间复杂度
时间复杂度的基本概念时间复杂度是用来表示一个程序(或算法)执行时间与输入数据量之间关系的一种量度方法。它是通过分析算法执行过程中基本操作的次数来评估算法效率的一个标准。
C#中实现任意List的全组合算法代码
这个全组合算法的时间复杂度为O(2^n),空间复杂度为O(2^n),其中n为列表元素数量。由于组合的数量与元素个数有关,当n较大时,计算所有组合可能会消耗大量时间和内存资源。
关于矩阵乘法的一个改进算法的时间复杂度
### 关于矩阵乘法的一个改进算法的时间复杂度#### 引言在计算机科学与数学领域,矩阵乘法是一项基础而重要的操作。
算法 时间复杂度 空间复杂度 经典
### 算法的时间复杂度与空间复杂度详解#### 一、算法复杂度概述在计算机科学领域,算法的时间复杂度与空间复杂度是衡量一个算法效率的重要指标。
关于算法时间复杂度的计算
算法时间复杂度的计算算法时间复杂度的计算是计算机科学中一个非常重要的概念,它描述了算法执行时间随着输入规模的变化而增长的速度。


