美文网首页
滚动数组带来的优化

滚动数组带来的优化

作者: 有机会一起种地OT | 来源:发表于2021-10-25 17:01 被阅读0次

    程序中在涉及当前循环与前一循环对比的情况,有时需要我们用于两个变量来存储中间结果。

    for i in range(n):
      # compare
      compare tempres(i) and tempres(i-1)
      # program logic
      tempres(i) = func(i)
    

    这时为了节省空间消耗,最好只申请两个变量。每次循环将更早的中间结果剔除,换位最新结果。这部分代码可以采用如下落实实现。

    for i in range(n)
      # compare
      x, y = i%2, (i-1)%2
      tempres[x] and tempres[y]
      # program logic
    

    这样 tempres[0] 与 tempres[1] 轮流(滚动)作为前一循环中间结果的存储。不必,每次将前一循环的结果都放在 tempres[0]中,这样会对一次赋值的运算。

    相关文章

      网友评论

          本文标题:滚动数组带来的优化

          本文链接:https://www.haomeiwen.com/subject/pjfsaltx.html