資料結構中的常用查詢

2021-07-05 08:28:10 字數 1000 閱讀 1032

查詢:靜態查詢(順序查詢、折半查詢、分塊查詢)+動態查詢(二叉排序樹、平衡二叉樹、b-樹查詢)

一、靜態查詢:不改變原結構的順序。

1、順序查詢

逐個的與關鍵字進行比較。若找到相等的,則查詢成功;反之,失敗。

更適合順序儲存結構和鏈式儲存結構的查詢表

2、折半查詢

給定的序列是乙個有序序列。

把序列分成左中右,左《中《右;

把給定值與中間值進行比較,確定下次查詢是在左還是右;

繼續,知道成功或者失敗。

3、分塊查詢

順序查詢和二分法查詢的折中。先分塊,在塊中順序查詢。

塊間有序,塊內無序。

二、動態查詢

在查詢的同時,會改變表的結構。

比如在查詢的過程中同時插入查詢表中不存在的資料,或者從查詢表中刪除已經存在的某個資料

1、二叉排序樹

左子樹非空,則左子樹上所有節點值都小於根節點的值;

右子樹非空,則右子樹上所有節點值都大於根節點的值;

左右子樹本身就是兩棵二叉排序樹。

2、平衡二叉樹

或者一棵空樹

或者樹中任一節點左右子樹深度相差不超過1

三、hash表

雜湊表:根據關鍵字而直接進行訪問的資料結構。

建立了關鍵字和儲存位址之間的直接對映關係。

四、hash函式:

hash函式的方法:

1、直接位址法

h(key)=a*key+b;

2、除留餘數法

h(key)=key%p;

3、數字分析法

衝突解決發方法:

拉鍊法

開放位址法(線性探測、平方探測、再雜湊法)

hash表的查詢效率取決於三個隱私:雜湊函式、處理衝突的方法和填裝因子

填裝因子即為乙個表的填裝程度,為表中記錄數n/雜湊表長度m。

越大,則發生衝突的可能性越大

資料結構中的「查詢」(檢索)

內查詢和外查詢 都在記憶體中查詢即內查詢,外查詢還涉及外存,比如硬碟等。分類包括 1 線性表的查詢 又分順序查詢 二分查詢和分塊查詢。1 二分查詢又叫折半查詢 2 分塊查詢 線性表分成塊,每塊內部不要求有序,但塊塊之間應有序 2 樹表查詢 1 二叉排序樹 2 平衡的二叉排序樹 3 b樹 前面方法都只...

QT中的常用資料結構

qt中的常用資料結構 qstring 中使用最多的莫過於string,qstring提供了豐富的介面,使用方便,以下為常用介面 qvaluelist valuelist 是一般鍊錶結構,通用模板類 需提供相應類的拷貝建構函式 qvaluelist iterator qstringlist 繼承自qv...

查詢 資料結構

分類 資料結構與演算法 c c 2012 07 24 16 17 614人閱讀收藏 舉報幾種查詢演算法 順序查詢,折半查詢,分塊查詢,雜湊表 一 順序查詢的基本思想 從表的一端開始,向另一端逐個按給定值kx 與關鍵碼進行比較,若找到,查詢成功,並給出資料元素在表中的位置 若整個表檢測完,仍未找到與k...