選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

DSA 陣列


陣列

陣列是用於儲存多個元素的資料結構。

陣列被許多演算法使用。

例如,演算法可以用來查詢陣列中的最小值,如下面的動畫所示

速度

{{ msgDone }}

最小值: {{ minVal }}

在 Python 中,陣列的建立方式如下

my_array = [7, 12, 9, 4, 11]

注意:上面的 Python 程式碼實際上生成的是 Python 的 'list' 資料型別,但在此教程的範圍內,'list' 資料型別可以像陣列一樣使用。在此 瞭解更多關於 Python 列表的資訊。

陣列是帶索引的,這意味著陣列中的每個元素都有一個索引,該索引指示元素在陣列中的位置。本教程中的程式語言(Python、Java 和 C)對陣列使用基於零的索引,這意味著陣列中的第一個元素可以在索引 0 處訪問。

在 Python 中,此程式碼使用索引 0 將第一個陣列元素(值為 7)寫入控制檯

示例

Python

my_array = [7, 12, 9, 4, 11]
print( my_array[0] )
執行示例 »

演算法:查詢陣列中的最小值

讓我們使用陣列資料結構建立我們的第一個演算法。

以下是查詢陣列中最小值的演算法。

工作原理

  1. 逐一遍歷陣列中的值。
  2. 檢查當前值是否是迄今為止的最小值,如果是,則儲存它。
  3. 檢視所有值後,儲存的值將是陣列中所有值中的最小值。

嘗試下面的模擬,看看查詢最小值演算法是如何工作的(動畫與本頁頂部的動畫相同)

速度

{{ msgDone }}

最小值: {{ minVal }}

下一個模擬也查詢陣列中的最小值,就像上面的模擬一樣,但在這裡我們可以看到陣列中的數字是如何被檢查以找到最小值的

{{ msgDone }}
[
{{ x.dieNmbr }}
]

實現

在用實際程式語言實現演算法之前,通常最好先將演算法寫成一個分步過程。

如果你能用介於人類語言和程式語言之間的語言寫下演算法,那麼之後實現演算法會更容易,因為我們避免了陷入所有程式語言語法的細節。

  1. 建立一個變數 'minVal' 並將其設定為陣列的第一個值。
  2. 遍歷陣列中的每個元素。
  3. 如果當前元素的值低於 'minVal',則將 'minVal' 更新為此值。
  4. 遍歷完陣列中的所有元素後,'minVal' 變數現在包含最小值。

如果你願意,也可以用更像程式語言的方式來寫演算法,例如

變數 'minVal' = array[0]
對於陣列中的每個元素
    如果當前元素 < minVal
        minVal = 當前元素

注意:上面我們寫的兩個分步描述可以稱為“虛擬碼”。虛擬碼是用一種介於人類語言和程式語言之間的語言描述程式的功能。

寫下演算法後,用特定程式語言實現演算法就容易多了

示例

Python

my_array = [7, 12, 9, 4, 11]
minVal = my_array[0]    # Step 1

for i in my_array:      # Step 2
    if i < minVal:      # Step 3
        minVal = i
        
print('Lowest value: ',minVal) # Step 4
執行示例 »

演算法時間複雜度

Run Time

在探索演算法時,我們通常會檢視演算法相對於資料集的大小需要多長時間來執行。

在上面的例子中,演算法執行所需的時間與資料集的大小成正比,即線性關係。這是因為演算法必須訪問每個陣列元素一次才能找到最小值。迴圈必須執行 5 次,因為陣列中有 5 個值。如果陣列有 1000 個值,迴圈就必須執行 1000 次。

嘗試下面的模擬,看看查詢最小值所需的比較操作次數與陣列大小之間的關係。

有關時間複雜度的更詳細解釋,請參閱 此頁面

本教程中的每個演算法都將連同其時間複雜度一起呈現。

{{ this.userX }}

操作次數:{{ operations }}

 

DSA 練習

透過練習來測試自己

練習

如何從下面的陣列中打印出值“7”?

my_array = [7, 12, 9, 4, 11]
print(my_array[])

開始練習



×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援