这个程序段的执行时间和时间复杂度一样吗?说是什么单位时间,不懂,请各位指教
执行时间 是 程序实际运行的时间。
时间复杂度,是 用于描述执行时间的一个度量函数,比如你这里 for循环的时间复杂度就是 O(n);
执行时间就是时间复杂度,这个代码的复杂度是 O(n)
不知道你这个问题是否已经解决, 如果还没有解决的话:1.普通条件编译
#if (常量表达式)
//...
#endif
:如果 常量表达式 为真,编译至 #endif ;反之,从#if 到 #endif 都不编译
2.分支条件编译
#if (常量表达式)
//...
#elif (常量表达式) //elseif
//...
#else (常量表达式)
//...
#endif
#define SYMBOL 1
//ifdef
#ifdef SYMBOL //定义了往下编译;没定义,从此到 #endif 都不编译
//...(会被编译)
#endif
//ifndef
#ifndef SYMBOL//没定义就往下编译,定义了就不往下编译
//...(不会被编译)
#endif
:其实就是看 #ifdef / #ifndef 这一整条指令是否为真,为真就往下编译;反之直到 #endif 都不便宜
例子:
#define __DEBUG__
int main()
{
int arr[10] = { 0 };
int i = 0;
for (i = 0; i < 10; i++)
{
arr[i] = i;
#ifdef __DEBUG__
printf("%d ", arr[i]);
#endif //__DEBUG__
}
return 0;
}
如果要测试,就如代码所示,接着编译,可以打印出来是否赋值成功;如果不测试就把 #ifdef __DEBUG__ 和 #endif 注释掉,不编译打印的代码