看图轻松理解数据结构与算法系列(数组)

前言

推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各类堆、各类队列、各类列表、各类树、各类图、各类排序等等几十篇的样子。mysql

数组

数组是最熟悉也是最基础的一种结构了,有限个相同数据类型的元素按顺序排列的集合为数组。数组的数据是连续的,有上界下界,在其中的元素都有属于本身的索引值,即下标,经过这些下标就能定位到数组值。算法

根据维度的不一样能够将数组分为一维数组、二维数组、三维数组等等,以此类推。sql

一维数组

建立一个长度为10的数组, 数组

image

若是将 11,22,33,44四个数字放到数组中, 网络

image

若是将 "the","monster","is","coming"四个字符串放到数组中, 数据结构

image

找数组的下标为0和3保存的字符串, 并发

image

数组大小为10,则下标范围为0到9,若是超出范围则越界,致使错误, 机器学习

image

二维数组

二维数组也称为矩阵,由于是二维的,因此须要两个下标才能肯定一个元素,即行下标和列下标。建立一个3行10列的二维数组(矩阵),一共可存放30个元素, 数据结构和算法

image

"the","monster","is","coming"四个字符串分别放到数组(0,1)(2,2)(2,6)(1,4)四个坐标上, 学习

image

找数组中(2,6)(1,4)坐标中保存的字符串,

image

三维及更高维数组

三维数组即由三个维度组成的数组,是最多见的多维数组,由三个不一样的下标参量去描述数组中的元素。

按照正常思惟,咱们经常会用现实世界的三维空间来对应三维数组以进行理解,但我不建议经过这样来映射,这样的思惟方式不助于理解更高的维度,由于你很难用现实世界来想象四维五维或更高维。

因此建议以索引的形式来理解,每一个维度均可以当作是一层索引,三维的状况则能够当作以下,

image

好比将"the"放到(0,1,2)坐标中,

image

更高维度则能够继续往上抽取一维,相似树结构。

-------------推荐阅读------------

个人开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)

为何写《Tomcat内核设计剖析》

个人2017文章汇总——机器学习篇

个人2017文章汇总——Java及中间件

个人2017文章汇总——深度学习篇

个人2017文章汇总——JDK源码篇

个人2017文章汇总——天然语言处理篇

个人2017文章汇总——Java并发篇


跟我交流,向我提问:

欢迎关注:

相关文章
相关标签/搜索