陣列(Array)是程式設計中用來儲存相同類型資料元素的有序集合,讓開發者能高效管理多個相關資料。它透過索引快速存取元素,是資料結構的基礎,廣泛應用於列表、矩陣等場景。
陣列的定義與特性
陣列是一種固定大小的資料結構,元素依序排列於連續記憶體空間中,每個元素由從0開始的索引標示。
主要特性:
-
有序性:元素依索引順序存取,如
array[0]為第一個元素。 -
同質性:所有元素須相同資料型態,如全為整數。
-
固定大小:宣告後長度不變,插入或刪除需重建陣列。
-
隨機存取:透過索引O(1)O(1)時間直接讀取,效率高。
相較鏈結串列,陣列存取快但調整彈性差。
宣告與初始化方式
大多數語言使用方括號宣告陣列,並可同時初始化。
常見範例(以C++/Java/Python為例):
| 語言 | 宣告語法 | 初始化範例 |
|---|---|---|
| C++ | int arr[5]; |
int arr[] = {1, 2, 3}; |
| Java | int[] arr = new int[5]; |
int[] arr = {1, 2, 3}; |
| Python | arr = [0] * 5 |
arr = [1, 2, 3] |
多維陣列如二維int[][] matrix = new int[3][4];,模擬表格結構。
操作與常見應用
陣列支援遍歷、搜尋、排序等操作,常搭配迴圈使用。
基本操作:
-
存取:
arr[index] = value。 -
遍歷:
for(int i=0; i<length; i++)累加總和。 -
長度:如Java的
arr.length或Python的len(arr)。
應用示例:
-
資料批次處理:AI訓練資料集存為陣列。
-
影像處理:像素值以二維陣列表示。
-
排序演算法:如氣泡排序交換陣列元素。
Python範例計算平均值:
scores = [85, 92, 78, 96] avg = sum(scores) / len(scores) # 約87.75
注意事項與限制
陣列索引易越界,需檢查範圍避免錯誤(如IndexOutOfBounds)。
進階替代:
-
動態陣列:如Python list或Java ArrayList,自動擴展。
-
高維:NumPy ndarray支援向量化運算,提升AI效率。