資料結構之三大查詢
資料結構之三大查詢
一.靜態查詢表
附:ASL(平均查詢長度)=∑ (1-n) P(i)C(i)
P(i):查詢表中第i個記錄的概率(個人理解:比較一次正確概率)。
c(i):當給定值與表中記錄相等時候,已經比較的次數,C(i)隨過程不同。
1.順序表的查詢
條件:順序表或者線性連結串列示的查詢表
成功查詢時平均查詢長度:(n+1)/2
失敗查詢時平均查詢長度:3(n+1)/4
2.有序表的查詢
(1) 折半查詢
成功查詢時平均查詢長度:[(n+1)㏒₂(n+1)]/2
(2)菲波那切查詢
適用:關鍵字均勻,表長大,其平均效能比折半查詢好
3.靜態樹表的查詢(各記錄查詢概率不等時)
(1)靜態最優查詢樹(權值高的在上面)
PH值最小。
代價太高,不討論→_→
(2)次優查詢樹
PH值近似最小
具體實現字數太多,這裡只列概念和框架,具體參見吳偉民辦資料結構P223
4.索引順序表的查詢
(1)分塊查詢,又稱索引順序查詢。
分塊有序:第一塊資料最小,依次增大。
方法:每塊有個最大值索引,和開始地址,比較就可以得到資料所在資料塊,然後在塊內可以順序查詢或者折半查詢(必須有序)。
二.動態查詢表
概念:表本身是在查詢過程中生成的,即找到關鍵字,成功返回,否則插入。
1.二叉排序樹和平衡二叉樹。
(1)二叉排序樹(二叉查詢樹)
左節點<跟節點<右節點
有類似於折半查詢的特性,連結串列,插入不需要移動。
刪除(看不懂)現成演算法在P230.
(2)平衡二叉樹(AVL樹)
深度:左右子樹深度差不超過1
平衡因子:絕對值不大於一
有點難,先跳過
2.b-樹和b+樹.
(1)b-樹
一棵m階的b-樹,或為空樹,或滿足下面特性的m叉樹
①樹中每個節點至多有m棵子樹。
②若不是葉子節點,至少有2棵子樹。
③若不是葉子節點,至少有m/2棵子樹。
④所有非終節點包含以下資訊(n關鍵字個數,A(i)指向子樹指標,K(i)存在關係A(i-1)
相關文章
- 資料結構-單連結串列查詢按序號查詢資料結構
- 【資料結構】折半查詢(二分查詢)資料結構
- 23.資料結構 查詢資料結構
- 重學資料結構(八、查詢)資料結構
- 【PHP資料結構】雜湊表查詢PHP資料結構
- Java資料結構(十五)—— 多路查詢樹Java資料結構
- 資料結構 折半查詢 swift的版本資料結構Swift
- select查詢之三:子查詢
- 樹狀資料結構儲存方式——查詢篇資料結構
- 查詢 JSON 資料結構的 8 種方式JSON資料結構
- 查詢json資料結構的8種方式JSON資料結構
- (利用索引)大資料查詢索引大資料
- 查詢表結構
- 資料結構之查詢(順序、折半、分塊查詢,B樹、B+樹)資料結構
- 資料結構與演算法-二分查詢資料結構演算法
- 【資料結構與演算法】—— 二分查詢資料結構演算法
- [資料結構] 二分查詢 (四種寫法)資料結構
- 資料結構與演算法:查詢演算法資料結構演算法
- 資料結構與演算法——單詞查詢樹資料結構演算法
- 【演算法資料結構Java實現】折半查詢演算法資料結構Java
- 大資料的實時查詢大資料
- 資料結構與演算法整理總結---二分查詢資料結構演算法
- 資料結構與演算法-二叉查詢樹資料結構演算法
- 資料結構與演算法 第五章 查詢資料結構演算法
- javascript資料結構之順序查詢簡單介紹JavaScript資料結構
- 資料結構:二叉查詢樹的相關操作資料結構
- 【體系結構】Oracle 普通使用者查詢資料字典Oracle
- mysql查詢索引結構MySql索引
- sqlserver表結構查詢SQLServer
- 資料結構-並查集資料結構並查集
- 大資料量資料查詢最佳化大資料
- 大話資料結構資料結構
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- 資料結構與演算法知識點總結(5)查詢樹資料結構演算法
- 《大話資料結構》總結資料結構
- 『資料結構與演算法』二叉查詢樹(BST)資料結構演算法
- 資料結構和演算法之——二分查詢上資料結構演算法
- 資料結構和演算法之——二分查詢下資料結構演算法