【问题标题】:What is an alternate solution to nested multiple FOR loops?嵌套多个 FOR 循环的替代解决方案是什么?
【发布时间】:2013-06-06 10:45:06
【问题描述】:

始终建议您在编程中避免使用多个嵌套的for 循环。但是在某些情况下我们必须使用它。是否有任何解决方案(“良好实践”或设计模式)可以通过减少计算时间来实现相同的结果。

我想知道一个通​​用的优化逻辑,它将替换多个和嵌套的 for 循环。

注意:这并不特定于任何编程语言。

【问题讨论】:

  • 我认为这取决于情况,有时switch-case 也可以派上用场。
  • 不同循环之间有关系吗?因为如果是的话,可能有一种巧妙的方式可以组合这些循环;如果它们不相关,可能每个循环都有自己的目的,我在下面的回答可能会有所帮助,尽管它主要是装饰性的。
  • 没有替代循环的通用算法。如果没有更具体的业务逻辑示例,很难提出想法……如果有的话。

标签: design-patterns for-loop language-agnostic logic


【解决方案1】:

我通常做的是每个函数使用一个循环,即将多个 for 循环拆分为多个函数,每个执行一个循环,例如(伪语言):

execute_boxes(Boxes boxes)
   for each box in boxes:
      execute_box(box)

execute_box(Box box)
    for each side in box:
        ...

【讨论】:

  • 但是,计算周期数保持不变。这只是一个装饰性的解决方案,并没有经过优化。
  • 我知道,但除此之外还需要更多上下文。我会在您的问题中添加评论,以帮助其他人回答。
【解决方案2】:

如果没有任何具体的情况示例,我认为很难回答,但是某些语言为您提供了例如并行循环,因此许多线程可以在循环中进行一些工作。简单的重构也是一个不错的选择——我的意思是用不同的方法分离你的循环。

【讨论】:

    猜你喜欢
    • 2021-06-06
    • 1970-01-01
    • 2020-03-09
    • 2020-01-15
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多