1.靜態查詢表(順序查詢、折半查詢、插值查詢、靜態最優查詢樹、靜態次優查詢樹、分塊查詢)
插值查詢適合關鍵字均勻分布的有序表。
如果有序表中各記錄的查詢概率不等,則使查詢效能達最佳的判定樹是其帶權路徑長度之和取最小值的二叉樹,即靜態最優查詢樹。構造靜態最優查詢樹的時間代價較高,一般以次優查詢樹代替。構造次優查詢樹的方法是,取第i個節點作為根節點,使得左右子樹的權值差最小。然後遞迴進行。
2.動態查詢表(二叉排序樹、平衡二叉樹、b-樹、b+樹)
在隨機情況下,二叉排序樹的查詢長度和log n等量級,最壞情況下,o(n)。
平衡二叉樹查詢的時間複雜度o(log n)。
b-樹與b+樹的區別在於b+樹葉子節點包含了所有關鍵字資訊。所以b+樹的優勢:1.內部節點不含關鍵字,所以小,所以最終讀寫代價更低。2.查詢效率穩定。3.支援快速元素遍歷。b*樹內部節點儲存了指向兄弟的指標,**的時候分配新節點的概率比b+樹低,空間使用率更高。
3.雜湊表
雜湊函式的構造方法:直接定址法,取關鍵字或關鍵字的某個線性函式值為雜湊位址;數字分析法,取關鍵字的若干數字組成雜湊位址;平方取中法,取關鍵字平方後的中間幾位為雜湊位址;摺疊法,將關鍵字分割成位數相同的幾部分,然後取這幾部分的疊加和作為雜湊位址;除留餘數法,取關鍵字被某個不大於表長的數p除后所得餘數為雜湊位址。
查詢 資料結構
分類 資料結構與演算法 c c 2012 07 24 16 17 614人閱讀收藏 舉報幾種查詢演算法 順序查詢,折半查詢,分塊查詢,雜湊表 一 順序查詢的基本思想 從表的一端開始,向另一端逐個按給定值kx 與關鍵碼進行比較,若找到,查詢成功,並給出資料元素在表中的位置 若整個表檢測完,仍未找到與k...
資料結構 查詢
查詢 searching 也稱 檢索,查表,就是在大量的資訊集中尋找乙個特定的資訊元素。查詢就是根據 給定的關鍵字值,在 查詢表中確定乙個關鍵字等於給定的 記錄或資料元素。若存在這樣的資料元素,則稱查詢成功的,否則查詢不成功。查詢是許多重要的電腦程式中 最耗費時間的部分,查詢演算法的優劣密切關係著查...
資料結構 查詢
一.靜態查詢表 靜態查詢表是僅對查詢表進行查詢操作,而不能改變其中資料的線性表,可以是基於陣列的順序儲存或以線性鍊錶儲存。靜態查詢表主要有順序表 有序順序表和索引順序表三種。1.順序查詢 函式模型 int seqsearch element list,int searchnum,int n 2.折半...