MOOC数据结构学习——递归和for循环

递归对空间的占用很严重,如果数据非常大的话,数据空间已经不能满足要求了,则空间就爆掉了,无法完成应有的操作,即非正常终止,跳出程序。

如视频中所讲的打印1-N的数字。

利用递归实现代码如下:

#include
void printfN(int N){
	if(N){
		printfN(N-1);
		printf("%d\n",N);
	}	
}
int main(){
	int N;
	scanf("%d",&N);
	printfN(N);
}
在测试数据为10W时,空间直接爆掉,无法输出。在有空间限制的题目中,很有可能会超出内存。

利用for循环实现代码如下:

#include
int main(){
	int N;
	scanf("%d",&N);
	for(int i=1;i<=N;i++){
		printf("%d\n",i);
	}
}
虽然for循环需要一定的时间,在有时间限制的题目中,可能会超时,但是数据还是完好的可以输出的。




你可能感兴趣的:(MOOC数据结构学习)