1. row-major / column-major order

无论是行序优先还是列序优先,其实在计算机计算中,指的都是在线性空间(linear storage,如 RAM,也即连续内存存储 contiguous in ,memory)存储多维数组(multidimensional arrays)的方式。

数据的分布方式(data layout)对于在不同编程语言间正确地传递多维数组是十分关键的。

2. 地址计算

这里我们将多维数组的概念泛化为更高维。对于 d 维数组 N1×N2×⋯×Nd,该数组中的一个元素为 (n1,n2,…,nd)(其中 nk∈[0,Nk−1],从 0 开始计数),其在内存中的地址应当为:

  • 行序(row-major order):对于行序,最后一维是连续的,

    nd+Nd(nd−1+Nd−1(nd−2+Nd−2⋅(⋯+N2n1)⋯))=∑k=1d⎛⎝∏ℓ=k+1dNℓ⎞⎠nk
  • 列序(column-major order):对于列序,第一维是连续的,

    n1+N1⋅(n2+N2⋅(n3+N3⋅(⋯+Nd−1nd)⋯)))=∑k=1d(∏ℓ=1k−1Nℓ)nk

references

最新文章

  1. IEEE 802.11p (WAVE,Wireless Access in the Vehicular Environment)
  2. 461. Hamming Distance
  3. 【leetcode】 Longest Valid Parentheses (hard)★
  4. linux 同步IO: sync msync、fsync、fdatasync与 fflush
  5. Java客户端通过Http发送POST请求上传文件到web服务器
  6. 【英语】Bingo口语笔记(37) - 动物的多种表达
  7. asp.net等项目编译失败的原因之不能写入
  8. ListView的setOnItemClickListener和setOnItemLongClickListener同时响应的问题
  9. matlab拟合三维椭球
  10. Geometric Shapes (poj3449多边形相交)
  11. OCI_INVALID_HANDLE 什么原因
  12. MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为List<MongoDBRef>增加扩展方法
  13. [算法&数据结构]深度优先搜索(Depth First Search)
  14. django之信号
  15. gitlab导入现在git项目
  16. 学习 Spring (九) 注解之 @Required, @Autowired, @Qualifier
  17. HTML head标签内部常用设置
  18. SNF快速开发平台成长史V4.5-Spring.Net.Framework-SNF软件开发机器人
  19. [日常] Go语言圣经-字节切片与字符串
  20. ng-深度学习-课程笔记-0: 概述

热门文章

  1. spring接收对象数组实例
  2. [D3] Better Code Organization with selection.call() with D3 v4
  3. [Android 4.4.2] 泛泰A870 Mokee4.4.2 20140531 RC1.0 by syhost
  4. [Ramda] Complement: Logic opposite function
  5. 3、Pycharm使用
  6. PL/SQL精明的调用栈分析
  7. Android学习笔记:Home Screen Widgets(2):关于Widget
  8. js进阶 11-19 jquery如何查找选择器的第一个父亲元素和第一个定位的父元素
  9. adobe-flash-player离线下载方法
  10. 从程序员的角度分析微信小程序(编程语言:用到什么学什么)