zoukankan      html  css  js  c++  java
  • 数组偏移量

          数组中存在一个词汇:偏移量,在刚开始学习这部分的时候,不理解这个概念,看着例子中的计算方法也不理解。小组讨论时,也没有得出结果,只能悬起来,等深入学习之后继续研究。初步学习阶段已过,现在该回过头来看看遗留问题了,看到这一内容时,忽然间豁然开朗了。

        什么是偏移量?

           网上查资料的解说是到数组空间起始位置的偏移值,但是我不明白何谓偏移值。而我理解的是到数组空间起始位置的元素个数。

        怎么计算?

           数组分为一维数组、二维和多维,现在就以1-3维数组为例进行介绍(PS:在软考中只涉及到了1-3) 

           一维数组:a[n]

            对于一维数组,它的偏移量计算特别简单,比如在a[10]中求a[4]的偏移量

              ①  数组a的下标从0开始

                  则偏移量为4

              ②  数组a的下标从k开始(k<=4,保证所求元素在数组中)

                  则偏移量d=4-k

     

           二维数组:a[m][n]

             对于二维数组,它的偏移量计算分为以行为主序和以列为主序存储。以a[0..4][1..5]为例,计算a[2,2]的偏移量

             ① 以行为主序:偏移量d=i*n+j(i,j下标从0开始)

               以上述为例,由题可知,j的下标是以1为起始,则此时的偏移量为:d=2*5+(2-1)=11

             ② 以列为主序:偏移量d=j*n+i(i,j下标从0开始)

               此时偏移量d=(2-1)*5+2=7

     

            三维数组:a[m][n][o]

              三维数组计算a[i][j][k]的公式为d=i*n*o+j*o+k

                例如:数组a[0..3,0..2,1..4],求a[2,2,2]的偏移量,则可求得d=2*3*4+2*4+(2-1)=33

        小结:

          通过这次学习,一方面理解了偏移量这个东西,收获了新知识。另一方面,更加坚定了现在所走的路,遇到问题可以悬挂起来,在后边的不断学习中,总会找到解决的办法。而且当解决的时候你会感觉当时的问题是那么简单,对它的理解也会更加深刻。学习的过程就是一个不断遇到问题,而又不断总结和解决,在这个过程中,要求我们做的就是把控好全局,千万不要因为一个问题而失去对全局的认识与了解。

  • 相关阅读:
    分片副本监控优化备份分词器03
    es score限制
    German Collegiate Programming Contest 2017 G. Water Testing
    SQL注入以及sqlmap初体验
    BUUCTF [极客大挑战 2019]Upload 1
    DVWA—File Upload 文件上传
    DVWA—XSS 跨站脚本攻击
    WUSTCTF2020 佛说:只能四天
    猪圈密码
    2016全国大学生信息安全竞赛 破译
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253779.html
Copyright © 2011-2022 走看看