基本概念
-
查找表:查找表是由同一類型的數據元素(或記錄)構成的集合。
-
關鍵字:關鍵字是數據元素(或記錄)中某個數據項的值,用它可以標識一個數據元素(或記錄) 若此關鍵字可以唯一地標識一個記錄 則稱此關鍵字為主關鍵字 反之用以識別若干記錄關鍵字為次關鍵字。
-
查找:查找是根據給定的某個值,在查找表中確定一個其關鍵字等於給定的記錄或數據元素。若表中存在這樣一個記錄則稱查找成功,反之查找失敗。
-
動態查找表和靜態查找表:若在查找的同時對表進行修改操作(如插入和刪除操作)則稱相應的表為動態查找表,否則稱之為靜態查找表。

線性表的查找
順序查找:從表的一端開始,依次將記錄的關鍵字和給定值進行比較若某個記錄的關鍵字和給定值相等則查找成功,反之若掃描整個表之后仍未找到相等的記錄則查找失敗。






順序查找時間復雜度:ASL=\((N+1)/2\) 空間復雜度:一個輔助空間——\(O(1)\)

折半查找:折半查找也稱為二分查找,是一種效率較高的查找辦法,但是折半查找要求線性表必須采用順序存儲結構 而且表中關鍵字有序排列。







折半查找的時間復雜度為\(O(\log_2 n)\)
分塊查找

分塊查找的平均查找長度



樹表的查找












刪除有三種情況:




平衡二叉樹













散列表查找




補充:同義詞:具有相同函數值的關鍵字對該散列函數來說稱作同義詞。
散列函數和散列地址:在記錄的存儲位置p和其關鍵字\(key\)之間建立一個確定的對應關系\(H\)使\(p=H(key)\)稱這個對應關系H為散列函數 ,p為散列地址



散列函數構造方法



1.開放定址法

三種探測方法




2.鏈地址法






B-樹和B+樹





B-樹的插入



B-樹的刪除




B+樹




