資料結構 查詢

2022-04-10 13:34:47 字數 1063 閱讀 7151

查詢概念

查詢表:由同一型別的資料元素構成的集合。

查詢表按照操作的方式分為兩大種:靜態查詢表和動態查詢表。

靜態查詢表:只作查詢操作的查詢表,它的主要的操作有:

查詢某個「特定的資料元素」

動態查詢表:在查詢過程中同時插入查詢表中不存在的資料元素,或者從查詢表中刪除已經存在的某個資料元素。動態查詢表的操作:

查詢時插入資料和查詢時刪除資料

對於靜態查詢表來說,可以應用線性表結構來組織資料,這樣可以使用順序查詢演算法。如果再對主關鍵字排序,則可以應用折半查詢等技術進行高效的查詢。

對於動態查詢,則要考慮二叉排序樹的查詢技術。

靜態表查詢

順序表查詢

順序查詢:從表中的第乙個(或最後乙個)記錄開始,逐個進行記錄的關鍵字和給定值比較,如果某個記錄的關鍵字和給定值相等,則查詢成功。如果直到最後乙個(或第乙個)記錄,其關鍵字和給定值比較都不相等,則查詢不成功。

int sequential_search(int *a, int n, int key)

}//for

return 0;

}

但是這個演算法是可以改進的,上面看到每向後移動乙個元素後,都要比較當前的索引和陣列的個數,防止越界。事實上,可以設定乙個哨兵,這樣就不需要每次讓i與n作比較了。

/*有哨兵的順序查詢,查詢成功返回下標,不成功返回0*/

int sequential_search2(int *a, int n, int key)

return i;

}

這種在查詢方向的盡頭設定哨兵的方法,避免了在查詢過程中每次比較後都要判斷查詢位置是否越界。在資料量較多時,效率提高很大,是非常好的程式設計技巧。

折半查詢

有序表中,取中間記錄作為比較物件,若給定值與中間記錄相等,則查詢成功。若給定值小於中間記錄,則在中間記錄的左半區繼續查詢;若給定值大於中間記錄,則在右半區查詢。

查詢 資料結構

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

資料結構 查詢

查詢 searching 也稱 檢索,查表,就是在大量的資訊集中尋找乙個特定的資訊元素。查詢就是根據 給定的關鍵字值,在 查詢表中確定乙個關鍵字等於給定的 記錄或資料元素。若存在這樣的資料元素,則稱查詢成功的,否則查詢不成功。查詢是許多重要的電腦程式中 最耗費時間的部分,查詢演算法的優劣密切關係著查...

資料結構 查詢

一.靜態查詢表 靜態查詢表是僅對查詢表進行查詢操作,而不能改變其中資料的線性表,可以是基於陣列的順序儲存或以線性鍊錶儲存。靜態查詢表主要有順序表 有序順序表和索引順序表三種。1.順序查詢 函式模型 int seqsearch element list,int searchnum,int n 2.折半...