数据结构——代码执行效率的影响因素(1)
程序的运行效率和存储空间的大小有关
例:打印n个数字
循环打印:
void PrintN(int N){
int i;
for( i=1; i<=N; i++){
printf("%d\n",i);
}
return;
}
递归打印:
void PrintN(int N){
if(N){
PrintN(N-1);
printf("%d\n",N);
}
return ;
}
当N=10,100,1000,10000时,两个程序运行效率差不多,但是当N=100000时,循环打印的程序,会逐渐打印出数字,只不过时间长一点;递归打印的程序,直接崩溃掉。
N=100000时,循环打印的结果:
N=100000时,递归打印的结果:
总结:程序的执行效率受内存空间的影响,循环打印的程序所占用的空间是固定的,不会随着打印规模的增大而增大;递归程序所占用的内存空间会随着打印规模的增大而增大,S(N)=CN。