https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA

 
简单介绍PrefixSum的实现。
 
 
1. 基本介绍
 
把一个序列从前向后逐个执行迭代(assocOp),每针对一个元素执行一遍迭代,针对一整行执行一次迭代(layerOp)。
 
2. PrefixSum
 
a. layers:抽象方法,返回层数,等于layerOp执行的次数;
b. idLayer: 默认的layerOp,即没有动作,把输入原样返回;
 
3. RipplePrefixSum
 
每次只使用前一个元素对当前元素执行一次迭代,其他元素不进行迭代动作。
 
apply重构之后为:
 
a. offset只当前针对第几个元素进行迭代,当迭代到最后一个元素后停止:
 
 
b. 只针对当前元素执行assocOp:
 
 
offset每次递增1,当offset与当前元素序号相等时,才执行assocOp;
 
c. 当针对当前元素执行完assocOp后,执行一次layerOp:
 
 
d. 把layerOp的结果,带入下一次迭代:
 
 
 
一个迭代过程的例子如下:
 
实际执行的例子如下:
 
4. DensePrefixSum
 
提升迭代效率,每次迭代一半。
 
迭代过程如下:
 
执行过程如下:
 
5. SparsePrefixSum
 
 
6. 附录
 

最新文章

  1. Object.observe
  2. shell学习--grep1
  3. hexo问题篇(偶尔抽抽疯)
  4. 最大ASCII的和问题
  5. MySQL 添加列,修改列,删除列
  6. Adobe Edge Animate –使用EdgeCommons加载和播放音频
  7. Jetty容器集群配置Session存储到MySQL、MongoDB
  8. [转] json in javascript
  9. 三、改变struts.xml默认路径后web.xml如何配置
  10. CODEVS 3139 栈练习3
  11. CSS 常用自定义样式
  12. redhat6.3+oracle11GR2 单库 安装规划
  13. 转:【Java集合源码剖析】LinkedList源码剖析
  14. Pivotal开源基于PostgreSQL的数据库Greenplum
  15. HTML 练习on方法
  16. LeetCode.数字转罗马数字
  17. robot 中文 乱码 问题 的处理
  18. Docker 常用命令(四)
  19. LeetCode -Reverse Pairs
  20. iOS 播放远程网络音乐的核心技术点

热门文章

  1. 网络流最小割 H - Internship I - Friendship
  2. 【Hadoop离线基础总结】日志采集框架Flume
  3. 使用 React hooks 转化 class 的一些思考
  4. .netcore 部署时遇到413 Request Entity Too Large 和 413Payload Too Large 的问题
  5. 栈溢出(Stack Overflow)
  6. [hihoCoder1231 2015BeijingOnline]求圆与多边形公共部分的周长
  7. 最小生成树的本质是什么?Prim算法道破天机
  8. 基于 abp vNext 和 .NET Core 开发博客项目
  9. SQL SERVER 的窗体函数OVER的使用:row_number/rank/dense_rank
  10. 2018-06-18 sublime代码编辑器