数据结构——代码执行效率的影响因素(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时,循环打印的结果:

数据结构——代码执行效率的影响因素(1)
 

N=100000时,递归打印的结果:

数据结构——代码执行效率的影响因素(1)

总结:程序的执行效率受内存空间的影响,循环打印的程序所占用的空间是固定的,不会随着打印规模的增大而增大;递归程序所占用的内存空间会随着打印规模的增大而增大,S(N)=CN。