資料結構與演算法 陣列

2021-09-01 02:46:05 字數 716 閱讀 1860

陣列是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。

其中有幾個重要的概念:

非線性表

連續的記憶體空間

儲存相同型別的資料

如圖所示,這是乙個長度為5的int陣列arr,我們假設起始的記憶體位址為1000,那麼第乙個元素的記憶體位址範圍就是:1000-1003,這是因為乙個int佔4個位元組。那麼如果我們想要訪問最後元素arr[4],我們可以很容易的通過起始位址計算出來,1000+4*4 = 1016。那麼最後乙個元素就是記憶體位址1016-1019。這就是陣列隨機訪問的原理,並且通過前面的算式,我們可以得出因為陣列下標訪問的計算與陣列長度n無關,因此下標訪問的時間複雜度為o(1)

前兩點上面原理裡面已經解釋的很清楚了,這裡我們聊聊陣列的插入與刪除。

因為陣列是一組連續的記憶體空間,那麼不管我們是要往裡面插入或者刪除,都必須涉及到陣列插入、刪除節點之後的資料的移動。那麼最理想的情況:直接在陣列末尾插入、刪除元素,時間複雜度為o(1)。最差情況:在陣列開啟插入、刪除元素,時間複雜度為o(n)。因此資料的插入、刪除操作是非常低效的。

既然我們已經知道了陣列插入、刪除的效率問題,那麼我們可以有一些小技巧來優化我們的操作。

資料結構與演算法 陣列

題型1 如何用遞迴實現陣列求和 方法1 題型2 如何用乙個for迴圈列印乙個二維陣列 方法1 array在二維陣列中的行號和列號分別為 i maxy i maxy 題型3 用遞迴和非遞迴的方法實現二分查詢 題型4 如何在排序陣列中,找出給定數字出現的次數 方法1 二分查詢,分別找出左邊界和右邊界,左...

資料結構與演算法 陣列

陣列是由相同型別的元素 element 的集合所組成的資料結構,分配一塊連續的記憶體來儲存。利用元素的索引 index 可以計算出該元素對應的儲存位址。維基百科 陣列是線性表資料結構,定義陣列時,系統會分配乙份連續的記憶體空間來儲存一組相同的型別的資料,如int num n 陣列定義為一維陣列 二維...

資料結構與演算法 陣列

陣列是由相同型別的元素 element 的集合所組成的資料結構,分配一塊連續的記憶體來儲存。利用元素的索引 index 可以計算出該元素對應的儲存位址。維基百科 1.儲存結構 陣列是線性表資料結構,定義陣列時,系統會分配乙份連續的記憶體空間來儲存一組相同的型別的資料,如int num n 2.多維陣...