在python中,如果我有一个修改整数列表的递归函数,并假设列表很大,这样做会更快:将列表保留为全局变量,而不是将其作为参数传递,或者将其作为参数传递争论而不是全球化?
问问题
286 次
3 回答
1
对于快速和干净的代码,您应该使用自定义堆栈而不是全局变量来使用迭代方法进行递归(只要没有算法替代方案)。
于 2013-01-31T19:02:39.230 回答
0
如果列表是通过引用传递的,并且在递归函数中没有重复,那么性能差异将可以忽略不计,您应该使用任何一种方法都会产生更清晰和可维护的代码。通常这会将数组作为参数传递,但并非总是如此。
于 2013-01-31T19:09:11.917 回答
-1
列表是通过地址传递的,因此额外的开销只是单个函数参数(指针)。我不认为这很明显。
您必须测试自己,但如果它很重要,我会感到惊讶。
于 2013-01-31T18:47:20.420 回答