資料結構與演算法(查詢)

2021-10-08 05:59:05 字數 1804 閱讀 8446

1、查詢表:用於查詢的資料集合,由同一型別的資料元素組成,經常進行的操作:

2、靜態查詢表:無需動態修改查詢表的操作,都是靜態查詢表。適合的查詢方法有順序查詢、折半查詢、雜湊查詢。

3、動態查詢表:需要動態插入或刪除的操作。適合的查詢方法有二叉排序樹查詢、雜湊查詢。

4、關鍵字:資料元素中唯一表示該元素的某個資料項的值。

5、平均查詢長度:所有查詢過程中進行關鍵字比較次數的平均值。

僅用於有序順序表

首先將給定值key與表中中間位置的元素比較,當相等則查詢成功,返回該元素的儲存位置;當不相等則需要查詢的元素只能在中間元素以外的前半部分或後半部分,然後在縮小的範圍內繼續進行同樣的查詢,如此反覆,直到找到為止,當確定沒有需要查詢的元素,則查詢不成功,返回失敗資訊。

演算法偽**如下:

該演算法需要方便的定位查詢區域,因此要求線性表必須有隨機訪問的特性。該演算法僅適合順序儲存結構,不適合鏈式儲存結構,元素按關鍵字有序排序。

稱為索引順序查詢,既有動態結構,適合快速查詢

將查詢表分為若干子塊,塊內元素可無序,塊間有序,即前乙個塊中的最大元素小於後乙個塊中的最小元素。建立乙個索引表,索引表中的每個元素含有各塊的最大關鍵字和各塊中的第乙個元素的位址,索引表按關鍵字有序排列。

分塊查詢的過程:

(1)在索引表中確定待查記錄所在的塊,可以順序或折半查詢,

(2)在塊內順序查詢

分塊查詢的平均查詢長度為索引查詢和塊內查詢的平均查詢長度之和。設l1和ls分貝時索引查詢和塊內查詢的平均查詢長度,則該演算法的平均查詢長度:

1、b樹及其基本操作

又稱多路平衡查詢樹,b樹中所有節點的孩子個數的最大值稱為b樹的階,一般用m表示。一棵m階b樹或為空樹,或為滿足如下特性的m叉樹:

上述b樹中所有節點的最大孩子數m=5。該樹有如下性質:

1、 雜湊表概念

理想情況,對雜湊表進行查詢的時間複雜度為o(1),與表中元素數量無關。

2、雜湊函式的構造方法

雜湊函式的定義域必須包含全部需要儲存的關鍵字,值域範圍依賴雜湊表的大小或位址範圍。

雜湊函式的位址應該是等概率,均勻分布在整個位址空間中,減少衝突發生。

雜湊函式應簡單,在較短時間內計算任意關鍵字對應的雜湊位址。

資料結構與演算法 查詢演算法

1.線性查詢,從頭到尾去遍歷,找到符合的則返回 2.二分法查詢 前提 目標陣列有序 package math public class dichotomy int k new dichotomy show arr,8 system.out.println k public int show int ...

資料結構與演算法 查詢演算法

第二章 查詢和排序演算法 課時1 列表查詢 1 列表查詢的含義 從物件中查詢某乙個特定的元素 2 列表查詢的方式包含兩種 順序查詢和二分查詢 3 順序查詢演算法 從開始一直搜尋到最後乙個元素進行查詢,for迴圈,時間複雜度為o n 4 二分查詢針對有效的列表直接進行首尾二分查詢,不斷使得候選區減半,...

資料結構與演算法(查詢)1

演算法如下 define listsze 20 typedef struct elemtype typedef struct stable 查詢過程 int searchseq stable st,keytype k 在順序表中查詢關鍵字等於k的元素,若找到則函式值為該元素在表中的位置,否則為0 a...