【发布时间】:2015-03-30 15:18:17
【问题描述】:
我想知道什么时间复杂度设置车!和设置-cdr!有在计划?我认为这是恒定的时间,但我可能错了,因为我不知道它们在内部是如何工作的。任何有想法的人?
【问题讨论】:
-
这将取决于实现,因为它没有指定“它们如何在内部工作”。和你一样,我希望在大多数实现中它是恒定的时间。
-
如果一个 Scheme 实现设法以某种方式实现它们,使它们不是恒定时间,我会觉得非常了不起。
-
@AlexisKing 在闭包方面,
cons的经典(教育)实现。如果词法闭包没有很好地实现,那么 set-cdr 和 set-car 可能会更慢。诚然,我不希望实现提供这些作为实际实现,但我可以在示例实现中看到这种情况。 -
@JoshuaTaylor 它可能会更慢,但它仍然是恒定时间,尽管具有更大的恒定因子。
-
@chris 它仍然取决于词法环境是如何实现的。如果这些是作为关联列表实现的,那么它很容易变得相当慢。
标签: scheme time-complexity sicp