繁体   English   中英

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

[英]What's faster, recursion or global variables?

在python中,如果我有一个修改整数列表的递归函数,并假定该列表很大,则这样做的速度更快:将列表保留为全局变量,而不将其作为参数传递,或将其作为整数传递争论,而不是使其全球化?

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

如果列表是通过引用传递的,并且在递归函数中没有重复,则性能差异可以忽略不计,并且您应使用任何一种方法来生成更清晰和可维护的代码。 通常,这会将数组作为参数传递,但不总是如此。

列表是通过地址传递的,因此额外的开销只是单个函数参数(指针)。 我不认为这是值得注意的。

您必须进行自我测试,但是如果它很重要,我会感到惊讶。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM