6種查詢方法

2021-09-29 11:40:09 字數 1539 閱讀 5451

又稱為二分查詢。僅適用於有序的順序表。

基本思想:將給定的關鍵字和給定序列中間位置關鍵字比較,若相等則成功;若不相等,則在中間元素的前半部分或後半部分範圍重複查詢,直到找到,或查詢不成功。

查詢判定樹:

asl(成功)如上圖。

又稱為索引順序查詢。

基本思想:將查詢表分為若干子塊。塊內元素可以無序,但塊間是有序的。(即第乙個塊中最大關鍵字小於第二個塊中的所有關鍵字)

查詢過程:1.在索引表中確定待查記錄所在的塊(折半查詢或者順序查詢);

2.塊內順序查詢。

左子樹關鍵字《根關鍵字《右子樹關鍵字

非遞迴:

typedef

struct bitnodebitnode,

*bitree;

bitnode*

bstsearch

(bitree p,

int key)

else

if(keykey)

else

}return null;

}

遞迴

typedef

struct bitnodebitnode,

*bitree;

bitnode*

bstsearch

(bitree p,

int key)

else

else

if(keykey)

else

}}

b樹特性:

1.m階b樹每個結點至多有m個分支;

2.根結點且不是葉子結點至少有2個分支;

3.非根非葉子結點至少有【(m/2)上取整 】 個分支;

4.結點內關鍵字互不相等;

5.n個分支對應n-1個關鍵字;

6.關鍵字按遞增順序排列;

7.葉子結點都在同一層

8.所有結點包含資訊

9.不可以順序查詢

乙個關鍵字的空位子對應乙個分支

b+樹特性:

1.n個關鍵字n個分支;

2.m階b+樹每個結點至多有m個分支;

3.葉結點包含資訊,非葉結點只是索引作用

4.可以順序查詢

乙個關鍵字對應乙個分支

1.直接定位址法

h(key)=a*key+b

2.除留餘數法

h(key)=key%p

表長m,p是小於m但最接近m的質數。

解決衝突的方法

清除浮動方法(6種)

浮動元素 float屬性 讓元素進行浮動 left 左浮動 right 右浮動 清除浮動元素屬性 clear屬性 清除浮動 left 在左側不允許浮動元素 right 在右側不允許浮動元素 both 在左 右兩側不允許浮動元素 none 預設值。允許浮動元素出現在兩側 為什麼要清除浮動 當子元素設定...

兩種查詢方法

1.問題 寫出兩種檢索演算法 在乙個排好序的陣列t 1 n 中查詢x,如果x在t中,輸出x在t的下標j 如果x不在t中,輸出j 0.按實驗模板編寫,分析 部分僅給出複雜度結果即可。2.解析 問題的理解和推導,可用電子版直接在此編寫,也可用紙筆推導,拍照嵌入本文件 1.順序查詢,最簡單最經典的思路,從...

資料的6種排序方法

今天講了堆排序,就這以前學過的排序方法,我來做乙個總結 1 選擇排序 選擇排序是比較基礎的排序方法,需要兩個迴圈,用於對每乙個數進行查詢和替換,不用多說,如下 includeint a 101 int main for i 0 i其實也沒什麼優點,關鍵是好想,對於初學者,是必須掌握的 2 氣泡排序 ...