通用資料結構的選擇優先順序

2021-08-21 11:42:50 字數 719 閱讀 5187

大o表示法顯示的資料結構的速度

1.陣列

2.鍊錶

3.二叉樹

4.雜湊表

1.陣列 (有序陣列 無序陣列) 有序陣列的插入慢,查詢快(原因,插入會對插入資料的位置進行查詢,找到後對整個陣列資料進行移動。

無序陣列 查詢和插入一樣)

2 鍊錶 (不需要知道具體的資料長度和大小) 鍊錶可以拓展為 棧 和 佇列。

3.二叉樹 插入和查詢的速度比陣列和鍊錶快 (二叉搜尋樹,針對隨意的資料,有序的資料會形成不平衡的樹,影響數的查詢插入速度。對不平衡樹的優化

:紅黑樹,b-樹。另完全二叉樹,除了最後一層樹之外,別的樹左右節點都有值。堆的實現原理基於完全二叉樹)

4.雜湊表 除圖外基本資料型別中速度最快的,有陣列的關鍵字查詢 有二叉樹的速度。底層實現原理(資料,不過通過雜湊函式來壓縮下標。如果事先知道了資料的大小,那麼通過

雜湊函式壓縮了資料的下標後,插入陣列中。如果不知道,壓縮下標後向陣列中插入鍊錶)雜湊函式的實現基本原理,初始化資料的兩倍大小,因為如果資料越來越滿會嚴重影響雜湊表的速度

然後壓縮下標,進行插入,如果下標相同,位置占用那麼下標向右移動到空位置插入。

資料結構 優先順序佇列

設初始序列為 49,38,65,97,76 大根堆 父節點的值大於或等於子節點的值 令數值越大優先順序越高 此時堆頂的元素為所有元素的最大值 97 小根堆 父節點的值小於或等於子節點的值 令數值越小優先順序越高 此時堆頂的元素為所有元素的最小值 38 將佇列中的所有元素按從大到小的數值輸出 分析 因...

資料結構 優先順序佇列

優先佇列的底層實現 二叉堆實現優先順序佇列 練習優先順序佇列也屬於佇列,因此也提供以下介面 利用二叉堆作為優先佇列的底層實現 可以通過comparator或comparable去自定義優先順序高低 利用二叉堆實現優先順序佇列。二叉堆實現優先順序佇列 author yusael public clas...

資料結構 優先順序佇列(堆)

一 堆 0 預備知識 使用陣列儲存二叉樹結構,方式即將二叉樹用層序遍歷方式放入陣列中。這種方式的主要用法就是堆的表示。在陣列中 左孩子 left 下標 2 parent 1 右孩子 right 下標 2 parent 2 雙親 parent 下標 child 1 2 1 堆的概念 堆在邏輯上是乙個完...