看图轻松理解数据结构和算法:数组
source link: https://mp.weixin.qq.com/s?__biz=MjM5MzA1Mzc3Nw%3D%3D&%3Bmid=2247484602&%3Bidx=1&%3Bsn=244cc963d228f85f24ae1fb0f26ec0b8&%3Bchksm=a69da98491ea2092437caaf78419ffb68965ba6a2862701396653fa6bfdfc8c9502bf4a
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
前言
推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。
数组
数组是最熟悉也是最基础的一种结构了,有限个相同数据类型的元素按顺序排列的集合为数组。数组的数据是连续的,有上界下界,在其中的元素都有属于自己的索引值,即下标,通过这些下标就能定位到数组值。
根据维度的不同可以将数组分为一维数组、二维数组、三维数组等等,以此类推。
一维数组
创建一个长度为10的数组,
image 如果将 11,22,33,44
四个数字放到数组中,
如果将 "the","monster","is","coming"
四个字符串放到数组中,
找数组的下标为0和3保存的字符串,
image数组大小为10,则下标范围为0到9,如果超出范围则越界,导致错误,
image二维数组
二维数组也称为矩阵,因为是二维的,所以需要两个下标才能确定一个元素,即行下标和列下标。创建一个3行10列的二维数组(矩阵),一共可存放30个元素,
image 将 "the","monster","is","coming"
四个字符串分别放到数组(0,1)(2,2)(2,6)(1,4)四个坐标上,
找数组中(2,6)(1,4)坐标中保存的字符串,
image三维及更高维数组
三维数组即由三个维度组成的数组,是最常见的多维数组,由三个不同的下标参量去描述数组中的元素。
按照正常思维,我们常常会用现实世界的三维空间来对应三维数组以进行理解,但我不建议通过这样来映射,这样的思维方式不助于理解更高的维度,因为你很难用现实世界来想象四维五维或更高维。
所以建议以索引的形式来理解,每个维度都可以看成是一层索引,三维的情况则可以看成如下,
image比如将"the"放到(0,1,2)坐标中,
image更高维度则可以继续往上抽取一维,类似树结构。
--------------------------------------
跟我交流:
-------------推荐阅读------------
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK