查詢演算法 折半查詢,二叉排序樹,雜湊表 雜湊查詢

2021-10-11 18:45:11 字數 613 閱讀 4902

折半查詢

把low放在最左邊,high放最右邊,mid=(high+low)/2

如果low<=high則迴圈,當待查詢數

當low=mid的時候,該值與查詢數相等,則輸出,否則當迴圈結束後仍未找到則break

時間複雜度o(log2n),比較次數<=樹的深度=log2n

順序儲存有序表

分塊查詢

二叉排序樹

數學分析法: 取中間幾位亂序的數 ,或加減乘除等作為位址(首先要知道每一位數的分布情況)

平方取中法: 先把編碼平方後,取中間的幾位數

摺疊法: 按n個數為間隔隔開,再加起來。

除留餘數法: 選擇適當的p值(一般選小於表長的最大質數),對關鍵字取餘(最好)

以上方法可以自由組合

開放位址法: h=(h(key)+d)%表長。d可以以線性序列(1,2,3…表長-1),可以是二次探測(1²,-1²,2²,-2²…(表長/2)²),也可以是隨機數。只要發生衝突的位址,則進行下一次探測

鏈位址法: 把相同位址的記錄放在同乙個單鏈表中。該適用於表長不確定的情況

查詢演算法 二叉排序樹

二叉排序樹,又稱二叉查詢樹,是一種對排序和查詢都很有用的特殊二叉樹 定義二叉排序樹或者是一棵空樹,或者具有以下定義 1 若左子樹不為空,左子樹上所有結點值均小於根結點值 2 若右子樹不為空,右子樹上所有結點值均大於根結點值 3 左右子樹也分別為二叉排序樹。遞迴定義。有定義可得性質 中序遍歷二叉樹可得...

查詢 二叉排序樹

順序查詢 順序查詢又叫線性查詢,是最基本的查詢技術,它的查詢過程是 從表中第乙個記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果知道最後乙個記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢不成功。順序查詢演算法實現 如下 順序...

查詢 二叉排序樹

動態查詢表 表結構本身是在查詢過程中動態生成的,即對於給定值key,若表中存在其關鍵值等於key的記錄,則查詢成功返回,否則插入關鍵字等於key的記錄。二叉排序樹或者是一顆空樹,或者是具有下列性質的二叉樹 1 若他的左子樹不為空,則左子樹上所有結點的值均小於它的根結點的值。2 若它的右子樹不空,則右...