1. 程式人生 > >01-看圖理解資料結構與算法系列(陣列)

01-看圖理解資料結構與算法系列(陣列)

 

陣列

陣列是最熟悉也是最基礎的一種結構了,有限個相同資料型別的元素按順序排列的集合為陣列。陣列的資料是連續的,有上界下界,在其中的元素都有屬於自己的索引值,即下標,通過這些下標就能定位到陣列值。

根據維度的不同可以將陣列分為一維陣列、二維陣列、三維陣列等等,以此類推。

一維陣列

建立一個長度為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)四個座標上,

image

 

找陣列中(2,6)(1,4)座標中儲存的字串,

三維及更高維陣列

三維陣列即由三個維度組成的陣列,是最常見的多維陣列,由三個不同的下標參量去描述陣列中的元素。

按照正常思維,我們常常會用現實世界的三維空間來對應三維陣列以進行理解,但我不建議通過這樣來對映,這樣的思維方式不助於理解更高的維度,因為你很難用現實世界來想象四維五維或更高維。

所以建議以索引的形式來理解,每個維度都可以看成是一層索引,三維的情況則可以看成如下,

image

 

比如將"the"放到(0,1,2)座標中,

image

 

更高維度則可以繼續往上抽取一維,類似樹結構。

----------------------------------------------------------------------------------------------------------------------------------------
作者:超人汪小建
連結:https://juejin.im/post/5b55201a51882531283352fe
來源:掘金
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。