C语言:请列举一个以时间换空间或以空间换时间的例子,下面代码: 请帮忙解释一下空间和时间转换的原理?
发布网友
发布时间:2022-04-26 23:52
我来回答
共3个回答
热心网友
时间:2023-11-12 18:54
第一个,用空间换时间,swap中定义了c,就是在内存中又开辟了一个int内存空间,然后一次swap需要进行三次赋值运算。
第二个,用时间换空间,swap中没有额外的定义变量,也就是没有内存的开辟。但是一共进行了3次加(减)法运算和三次赋值运算。运算次数比第一个多,所以时间效率低,但是没有开辟额外内存,所以空间效率高。
热心网友
时间:2023-11-12 18:55
我怎么觉得这两个是自定义的空函数,是两个调用函数,第一个是引入变量c,使a,b值交换;第二个也是值的变化,我就设开始时a=1,b=4
第一步:a=a+b=1+4=5 (a=5,b=4)
第二步:b=a-b=5-4=1 (a=5,b=1)
第三步:a=a-b=5-1=4 (a=4,b=1)
同样是实现交换两值
你说的时间换空间,是指变量的值和地址的关系吗?我也只懂这些而已,是个新手
热心网友
时间:2023-11-12 18:55
第一个,用空间换时间,swap中定义了c,就是在内存中又开辟了一个int内存空间,然后一次swap需要进行三次赋值运算。
第二个,用时间换空间,swap中没有额外的定义变量,也就是没有内存的开辟。但是一共进行了3次加(减)法运算和三次赋值运算。运算次数比第一个多,所以时间效率低,但是没有开辟额外内存,所以空间效率高。
热心网友
时间:2023-11-12 18:55
就着两段来说,下面一个swap没有使用中间变量,所以可以认为是空间优化,但是它的运算量比第一个swap要大,所以说第一个时间复杂度方面占优。
软件设计中,时间优化和空间优化是两个相互矛盾的方面,实际设计时应当全面权衡考虑。
其他的以空间换时间的例子如哈希查找表。
热心网友
时间:2023-11-12 18:55
我怎么觉得这两个是自定义的空函数,是两个调用函数,第一个是引入变量c,使a,b值交换;第二个也是值的变化,我就设开始时a=1,b=4
第一步:a=a+b=1+4=5 (a=5,b=4)
第二步:b=a-b=5-4=1 (a=5,b=1)
第三步:a=a-b=5-1=4 (a=4,b=1)
同样是实现交换两值
你说的时间换空间,是指变量的值和地址的关系吗?我也只懂这些而已,是个新手
热心网友
时间:2023-11-12 18:55
就着两段来说,下面一个swap没有使用中间变量,所以可以认为是空间优化,但是它的运算量比第一个swap要大,所以说第一个时间复杂度方面占优。
软件设计中,时间优化和空间优化是两个相互矛盾的方面,实际设计时应当全面权衡考虑。
其他的以空间换时间的例子如哈希查找表。