單鏈表雙端鍊錶
有序鍊錶
雙向鍊錶
頭插o(1)
o(1)
頭刪o(1)
o(1)
尾插o(1)
o(1)
尾刪o(n)
o(1)
插入max o(n) | min o(n/2)
刪除o(1)
查詢結點
o(n) 次比較 無移動次數
刪除結點
o(n) 次比較 無移動次數
o(n) – deletekey(int i)
指定結點後插入
o(n) 次比較 無移動次數
o(n) – insertafter(int i)
鍊錶優點
l 使用記憶體無限制 可以擴充套件到所有可以使用的記憶體
陣列大小在建立的時候 就固定了經常由於陣列太大 導致效率低下 或者陣列太小導致空間溢位
l 插入刪除結點的時候 鍊錶不需要任何移動 特別是複製時間遠遠大於比較時間的時候
雙向鍊錶
優點:前向遍歷
後向遍歷
缺點:每次插入或者刪除乙個鏈結點時候 需要處理四個鏈結點的引用(2
個連線前乙個鏈結點 兩個鏈結後乙個)由於多了兩個引用 鏈結點占用的空間也變大了
陣列和鍊錶插入效率比較
陣列和鍊錶將物件插入指定位置時,大致可以分為兩個步驟 1 找到要插入元素的位置 2 進行插入操作 可以得到等式 找到位置所需時間 插入所需時間 將物件插入指定位置所需總時間 由此可以先假設幾個值 找到插入元素的位置涉及的變數 要插入的位置為z 獲取乙個物件引用所需時間m 進行插入操作涉及的變數 移動...
鍊錶用途 陣列效率 鍊錶效率 鍊錶優缺點
三大資料結構的實現方式 資料結構 實現方式 棧 陣列 單鏈表佇列 陣列 雙端鍊錶 優先順序佇列 陣列 堆 有序鍊錶 雙端佇列 雙向鍊錶 陣列與鍊錶實現方式的比較 陣列與鍊錶都很快 如果能精確 棧或者佇列所需要容納的資料量 陣列 如果不能 鍊錶 陣列的效率 無序陣列 有序陣列 查詢比較次數o n 比較...
演算法效率比較
題目 針對陣列a和陣列b,兩個陣列的元素內容相同,不過陣列a是已經排序的,陣列b是亂序的,針對陣列的中位數,存在以下兩組程式,比較其效率並分析原因。int g int main for int i 0 i n i 背景知識 當包含流水線技術的處理器處理分支指令時就會遇到乙個問題,根據判定條件的真 假...