數據結構中的數組——解釋、功能和示例
已發表: 2021-06-21數據結構已被證明是幾乎所有已廣泛應用於大多數計算機程序的編程語言的關鍵部分。 正是通過數據結構,程序才能有效地管理和訪問數據,因為單獨訪問和存儲單個數據是一個耗時的過程。 算法專門設計用於創建數據結構中所需的特定操作。 因此,數據結構和算法共同為複雜的應用程序和程序奠定了基礎。
在本文中,我們將關註一種數據結構,即數組。
數組是一種數據結構,其中元素或數據存儲在連續的位置。 每當用戶擁有一組具有相同數據類型的數據時,數組數據結構就是組織該數據的選項。 數組的大小取決於數據的大小。 在將元素存儲到數組中之前,必須定義數組的大小,以便有效地合併所有元素。 存儲在數組中的每個元素都有一個分配給它的索引值,這有助於識別該元素在數組中的位置。 數組的第一個元素的索引值為零。
與數組數據結構相關的重要術語是:
- 元素:元素表示存儲在數據結構中的每個對像或項。
- 索引:索引表示數組中元素的位置。 它有一個數值。
數組的大小隨著不同的編程語言而變化。 根據大小,數組可能有兩種類型:靜態數組和動態數組。
目錄
1.靜態數組:
這些類型的數組在創建過程中具有預定義的大小。 因此,靜態數組也稱為固定數組或定長數組。 可以通過兩種方式定義數組。 可以在創建數組時定義數組的元素,也可以在創建數組時定義數組的大小。 在後一種情況下,不需要指定元素。 默認值可能分配給未初始化的數組或先前分配留在內存中的值。
一旦定義了大小,數組就不能收縮或擴展。 由於在數組聲明期間分配了內存,因此只有編譯器可以銷毀數組。 添加元素是不可能的,因為用戶不確定是否存在任何可用內存來分配給下一個元素。
下表顯示了不同編程語言中使用的數組示例。
編程語言 | 定義的數組內容 | 沒有內容的數組的定義大小 |
C++ | 整數標記[] = {10, 20, 30}; | 整數標記[3]; |
C# | int[] 標記 = {10, 20, 30}; | int[] 標記 = = new int[3]; |
爪哇 | int[] 標記 = {10, 20, 30}; | int[] 標記 = = new int[3]; |
JavaScript | 變量標記 = [10, 20, 30]; | var 標記 = 新數組(3); |
Python | 標記 = [10, 20, 30] | 標記 = [無] * 3 |
迅速 | 變量值:[Int] = [10, 20, 30] | var 標記:[Int] = [Int](重複:0,計數:3) |
2.動態數組
顧名思義,數組是動態的,這意味著可以在運行時添加或刪除元素。 與長度固定的靜態數組相比,動態數組沒有固定的數組長度或大小。 大多數編程語言都提供標準庫函數或內置函數來創建和管理動態數組。
下表顯示了不同編程語言中數組的創建
編程語言 | 班級 | 添加元素 | 移除元素 |
C++ | #include <列表> 標準::列表 | 插入 | 擦除 |
C# | System.Collections.Generic.List | 添加 | 消除 |
爪哇 | java.util.ArrayList | 添加 | 消除 |
JavaScript | 大批 | 推,拼接 | 流行,拼接 |
Python | 列表 | 附加 | 消除 |
迅速 | 大批 | 附加 | 消除 |
數組的表示
數組的表示根據其在不同編程語言中的實現而有所不同。 數組是python數據結構的重要組成部分,已經用python編程語言進行了說明。
在python 數據結構中,數組是通過關鍵字array處理的。 每當使用關鍵字數組時,用戶必須存儲相同數據類型的元素。
資源
圖 1:數組示例
根據圖 1,陣列的圖示表明
- 數組的大小為 10,這意味著數組中可以存儲 9 個元素。
- 索引值已經在上面提到了以 0 開頭的數組。
- 存儲在數組中的元素可以是任何數據類型,並且可以通過它們的索引值來訪問元素。
圖 2顯示了另一個插圖,其中描述了 python 和 C++ 的語法。
資源
圖 2 :使用 python 和 C++ 聲明數組(
數組的屬性
數組數據結構有幾個屬性:
- 存儲在數組中的元素具有相同的數據類型和相同的大小,即int 數據類型的大小為 4 個字節。
- 連續的內存位置用於存儲數據結構的元素。 最小的內存分配給數組中的第一個元素。
- 索引值用於查找數組中元素的位置。 索引從 0 開始,並且始終小於數組中元素的總數。
- 由於可用的索引值,可以隨機訪問數組中的元素。 元素的地址可以通過添加偏移值的基地址來計算。
- 數組的概念在所有編程語言中都是相同的。 只有初始化和聲明有所不同。
- 數組名稱、元素和數據類型是所有語言中通用的三個部分。
創建數組
python數據結構中數組的創建如下所示。
- 可以導入python數據結構中的數組模塊來創建數組。
- array(data_type, value_list ) 是可以在python 數據結構中創建數組的語法。
- 數據類型應該是實整數或浮點數。 python中不允許使用字符串。
圖 2 展示瞭如何在 python 中創建一個數組。 顯示如何在 python 中導入數組模塊的代碼示例
導入數組
標記 = array.array('i', [100,200,300])
打印(標記)
數組的聲明可以通過
arrayName = array.array(數據類型的類型代碼,[array,items])
這可以在圖 3中表示
資源
圖 3:python 中的數組聲明
創建數組時使用的重要術語:
- 標識符:必須像變量名一樣指定的名稱
- 模塊:稱為數組的特殊模塊必須在python中導入。
- 方法:是python中初始化數組的具體方法。 吃了兩個參數,類型代碼和元素。
- 類型代碼:必須使用可用的類型代碼指定數據類型。
- 元素:數組元素必須在方括號內指定,例如 [200,400,100.]
可用的類型代碼如下所示
數組操作
隨著數據結構和算法的可用性,可以在任何類型的數據結構中執行多種操作。 數組數據結構可以具有添加、刪除、加入和更新元素等操作。
下面列出了可以在python數據結構的數組中進行的操作。
1. 向數組中添加元素
- 內置的 insert() 函數用於向數組添加元素。
- 使用的語法:arrayName.insert(index, value)
- 可以通過 insert() 函數將一個或多個元素添加到數組中。
- 可以使用 Input: append() 函數將元素添加到數組的開頭或任何特定位置。
導入數組
標記 = array.array('i', [200,500,600])
標記.插入(1, 150)
輸出:數組('i',[200,150,500,600])
下面顯示了一個帶有代碼的示例,取自
代碼輸出:
資源
2.刪除數組中的一個元素
- 一個元素可以通過它的值從數組中刪除。
- 使用的語法:arrayName.remove(value)
- 示例:將 250 的值添加到具有元素 100、300、200、500 和 800 的數組中後,將其刪除。
輸入:
導入數組
標記 = array.array('i', [100,300,200,500,800])
標記.插入(1, 250)
打印(標記)
標記.刪除(250)
輸出:數組('i',[100,300,200,500,800])
取自的代碼示例
資源
代碼輸出:
3. 訪問數組中的元素
- 索引運算符 [ ]用於訪問數組中的元素。
- 索引號用於訪問數組中的任何元素。
下面顯示了一個代碼示例,取自
代碼輸出:
資源
4. 搜索數組中的元素。
- 內置index()方法用於搜索數組中的元素。
- 函數返回要搜索的元素的索引值。
- 示例:在元素 100、250、300、200、500 和 800 的數組中搜索元素 250。
輸入:導入數組
標記 = array.array('I', [100,250,300,200,500,800])
打印(標記。索引(250))
輸出:1
用於在數組中搜索元素的代碼
代碼的輸出是
資源
3. 更新數組中的元素
- 更新元素的過程類似於插入方法,唯一的區別是在更新現有值時將在給定索引處替換。
- 新值被重新分配給索引以更新數組中的元素。
- 示例:用元素 100、250、300、200、500 和 800 的數組中的 350 更新元素 250。
輸入:導入數組
標記 = array.array('i', [100,250,300,200,500,800])
標記[1] = 350
輸出:
數組('我',[100,350,300,200,500,800])
顯示元素更新的代碼如下所示
代碼的輸出是
資源
陣列的優點
- 可以在單個變量中存儲多個值,而不是為每個元素創建單獨的變量。
- 使用數組可以輕鬆快速地處理多個值。
- 可以以更快的方式對數組的元素進行排序和搜索。
結論
本文討論了一種特殊類型的數據結構,即數組及其相關操作。 有了這些基本概念,就可以針對現實生活中的問題構建更複雜的程序。 如果你想加強python中數據結構概念的基礎,可以參考upGrad的Executive PG Program in Data Science的以下課程。 該課程由 IIIT-Bangalore 認證,擁有超過 14 種編程工具和語言,為您的行業之旅做好準備。 它專為 21 至 45 歲年齡段的入門級專業人士設計。 所以,不要在這裡停止學習,通過 upGrad 課程掌握語言及其在機器學習領域的應用。 如果您有任何疑問,我們的協助團隊將隨時為您提供幫助。
數組是一種強大的線性數據結構。 但是,它有一些優點和缺點,如下所述: 下面說明了數組和列表之間的區別。 數組數據結構在現實生活中有很多應用,它也被用作實現其他用戶定義數據結構的基礎。 數組的一些主要應用如下:數組的優點和缺點是什麼?
優點
1. 在數組中,可以通過索引號輕鬆訪問元素。
2. 數組可以用來存儲多個相似的實體。
3、搜索操作相當方便。 它可以在 O(n) 時間和 O(log n) 的排序數組中完成,其中 n 是元素的數量。
缺點
1. 由於內存是靜態分配在數組中的,所以數組的大小是不能改變的。
2. 它是同質的,即只有具有相似數據類型的元素才能存儲在數組中。 區分數組和列表?
大批 -
1. 數組數據結構是同構的,即只有數據類型相似的元素才能存儲在數組中。
2. 使用數組前需要導入模塊。
3. 算術運算直接適用。
4. 大數據首選。
4.更緊湊,消耗更少的內存。
列表 -
1、列表是異構的,裡面可以存儲多種數據類型的元素。
2. 無需導入模塊,因為它是內置在 Python 中的。
3.算術運算不能直接運算。
4. 較小數據的首選。
5.內存消耗較多。 描述陣列的主要應用?
1.數組用於實現和執行矩陣運算。 矩陣主要用於地質調查和科學研究實驗。
2.使用數組數據結構實現了幾個用戶定義的數據結構。 這些包括堆棧、隊列、堆、哈希表和列表。
3.程序使用數組來規範控制流,而不是使用相對冗長的傳統elif語句。
4.為CPU調度進程編寫的算法也使用數組數據結構來提高CPU性能。
5. 圖使用鄰接表作為它們的實現之一。 向量(數組的應用)用於創建這些鄰接列表。