1 什麼是數組?
數組(Array)是一種線性表的數據結構,它是用一組連續的內存空間,來存儲一組具有相同類型的數據。
內存地址計算公式:a[i]_address = base_address + i * data_type_size (data type size就是數據類型,假如是int類型就4字節)。
2 什麼是線性表與非線性表?
線性表:數據排成一條線一樣的結構,最多隻有前和後兩個方向,例如數組,鏈表,隊列,棧等等。
非線性表:數據不是簡單的前後關係,例如二叉樹,堆,圖等等
3 數組的特點與優點?
從概念我們可以看出來是的連續的內存空間和相同類型的數據這兩個特點,數組支持隨機訪問,根據下標隨機訪問的時間複雜度爲O(1),需要注意的是,即使數組是排好序的,進行二分查找也需要O(log n)的時間複雜度。
它的缺點是低效的插入和刪除,簡單的來說,最好的時間複雜度是O(1),最壞的時間複雜度是O(n),平均時間複雜度是O(n),也有些特殊情況是不一樣的。
4 關於插入和刪除有那些特殊的操作?
插入:如果數組中的數據是有序的,我們在某個位置插入一個新的元素的時候,必須搬移n位數據;但是如果存儲數據沒有任何規律,數組只是單純的一個存儲集合,直接將第k位的數據移到數組元素的最後,新的元素放在第k位。