void swap(int a, int b) { int c; c=a; a=b;b=a; } //--->空优 void swap(int a, int b) { a=a+b;b=a-b;a=a-b; } //根据以上的题意解释一下以时间换空间,和以空间换时间
第一个,用空间换时间,swap中定义了c,就是在内存中又开辟了一个int内存空间,然后一次swap需要进行三次赋值运算。 第二个,用时间换空间,swap中没有额外的定义变量,也就是没有内存的开辟。但是一共进行了3次加(减)法运算和三次赋值运算。 运算次数比第一个多,所以时间效率低,但是没有开辟额外内存,所以空间效率高。