數據結構 -- 數組
概念
數組是一種線性表數據的結構,他用一組連續的內存空間,來存儲一組相同數據類型的數據。
- 線性表:數據排列成一條線一樣的結構。數據結構特點:存在一個唯一的沒有前驅的(頭)數據元素;存在一個唯一的沒有后繼的(尾)數據元素存在頭和尾元素。像隊列,鏈表,棧也是線性表結構。對應的還有非線性表結構(數據沒有先后順序的,二叉樹,堆等)
- 連續內存空間:計算機在分配內存空的時候都會對應分配一個內存地址,連續的內存空間對應的是指連續的內存地址,計算機是通過訪問內存地址會獲取內存中的值。
- 相同的數據類型:相同的數據類型,換句話可以說數據存儲所占用內存大小一樣
特性 - 隨機訪問
基於上面的概念描述,下面來分析一下數組的最大特性:隨機訪問。
隨機訪問:就是存取第N個數據時,必須先訪問前(N-1)個數據 (鏈表)
非隨機訪問:就是存取第N個數據時,不需要訪問前(N-1)個數據,直接就可以對第N個數據操作(數組)
如下圖所示:
為什么數組下標都是從0開始?
- 從上面圖示我們來分析:
- 假設下標為1開始:我們要想獲取第3個值得話 首地址(1000)+ (3-1)*4(數據類型占用的內存) = 1008 第三個內存地址的位置
- 駕駛下標從0開始:我們想獲取第3個值得花 首地址(1000)+ 2 *4(數據類型占用的內存) = 1008 省去了一個減的動作 提高了訪問的效率。
總結
- 數組是我們經常在開發過程中接觸到的數據類型,所以很有必要清楚的了解數組的相關屬性的由來。