推出一個新系列,《看圖輕鬆理解數據結構和算法》,主要使用圖片來描述常見的數據結構和算法,輕鬆閱讀並理解掌握。本系列包括各類堆、各類隊列、各類列表、各類樹、各類圖、各類排序等等幾十篇的樣子。mysql
數組是最熟悉也是最基礎的一種結構了,有限個相同數據類型的元素按順序排列的集合爲數組。數組的數據是連續的,有上界下界,在其中的元素都有屬於本身的索引值,即下標,經過這些下標就能定位到數組值。算法
根據維度的不一樣能夠將數組分爲一維數組、二維數組、三維數組等等,以此類推。sql
建立一個長度爲10的數組, 數組
若是將 11,22,33,44
四個數字放到數組中, 網絡
若是將 "the","monster","is","coming"
四個字符串放到數組中, 數據結構
找數組的下標爲0和3保存的字符串, 併發
數組大小爲10,則下標範圍爲0到9,若是超出範圍則越界,致使錯誤, 機器學習
二維數組也稱爲矩陣,由於是二維的,因此須要兩個下標才能肯定一個元素,即行下標和列下標。建立一個3行10列的二維數組(矩陣),一共可存放30個元素, 數據結構和算法
將 "the","monster","is","coming"
四個字符串分別放到數組(0,1)(2,2)(2,6)(1,4)四個座標上, 學習
找數組中(2,6)(1,4)座標中保存的字符串,
三維數組即由三個維度組成的數組,是最多見的多維數組,由三個不一樣的下標參量去描述數組中的元素。
按照正常思惟,咱們經常會用現實世界的三維空間來對應三維數組以進行理解,但我不建議經過這樣來映射,這樣的思惟方式不助於理解更高的維度,由於你很難用現實世界來想象四維五維或更高維。
因此建議以索引的形式來理解,每一個維度均可以當作是一層索引,三維的狀況則能夠當作以下,
好比將"the"放到(0,1,2)座標中,
更高維度則能夠繼續往上抽取一維,相似樹結構。
-------------推薦閱讀------------
個人開源項目彙總(機器&深度學習、NLP、網絡IO、AIML、mysql協議、chatbot)
跟我交流,向我提問:
歡迎關注: