什么是更快,递归或全局变量?

时间:2013-01-31 18:43:21

标签: python

在python中,如果我有一个修改整数列表的递归函数,并假设列表很大,这样做更快:将列表保存为全局变量,不将其作为参数传递,或传递它作为一个论点,而不是让它全球化?

3 个答案:

答案 0 :(得分:1)

对于快速而干净的代码,您应该使用迭代方法来递归(就没有算法替代方法而言)使用自定义堆栈而不是全局变量。

答案 1 :(得分:0)

如果列表是通过引用传递的,而不是在递归函数中重复,那么性能差异可以忽略不计,您应该使用哪种方法将产生更清晰和可维护的代码。通常这会将数组作为参数传递,但并非总是如此。

答案 2 :(得分:-1)

列表由地址传递,因此额外的开销只是单个函数参数(指针)。我不认为这是显而易见的。

你必须自己测试,但如果它很重要我会感到惊讶。