常見查詢方法:一項一項依此查詢順序查詢
二分查詢
插值查詢
斐波那契查詢
雜湊查詢法
時間複雜度:最好情況o(1
)o(1)
o(1)
,平均情況o(n
)o(n)
o(n)
,最壞情況o(n
)o(n)
o(n)
。將資料分為分成兩等份,比較鍵值與中間值的大小,根據結果查詢前半段或者後半段。
時間複雜度:o(l
og(n
))
o(log(n))
o(log(
n))根據資料位置的分布,利用公式**資料所在位置,再以二分法的方式漸漸逼近。
時間複雜度:對於分布均勻的資料,優於o(l
og(n
))
o(log(n))
o(log(
n))按照斐波那契級數的方式分割資料
時間複雜度:平均為o(l
og(n
))
o(log(n))
o(log(
n))除留餘數法、平方取中法、摺疊法、數字分析法
除留餘數法:
將資料除以乙個常數後,取餘數當索引。
平方取中法:
計算資料的平方,取其中間的一段數字作為索引。
摺疊法:
將資料轉換為一串數字後,將這串數字拆分成幾個部分,再加起來作為索引。
數字分析法:
將資料高重複部分刪除,剩餘部分作為索引。
例如快遞送外賣,用手機末尾後4位數,作為索引。
線性探測法、平方探測法、再雜湊法、鍊錶法
平方探測:(ke
y)±i
2,i∈
0,1,
2,..
.,
nf(key)\pm i^2,i\in0,1,2,...,n
f(key)
±i2,
i∈0,
1,2,
...,
n 在雜湊法:
發生碰撞時,採用不同的雜湊函式
鍊錶法:
發生溢位時,在f(k
ey
)f(key)
f(key)
後面加乙個節點。
參考書籍:《**資料結構–使用python》
部分**
查詢 資料結構
分類 資料結構與演算法 c c 2012 07 24 16 17 614人閱讀收藏 舉報幾種查詢演算法 順序查詢,折半查詢,分塊查詢,雜湊表 一 順序查詢的基本思想 從表的一端開始,向另一端逐個按給定值kx 與關鍵碼進行比較,若找到,查詢成功,並給出資料元素在表中的位置 若整個表檢測完,仍未找到與k...
資料結構 查詢
查詢 searching 也稱 檢索,查表,就是在大量的資訊集中尋找乙個特定的資訊元素。查詢就是根據 給定的關鍵字值,在 查詢表中確定乙個關鍵字等於給定的 記錄或資料元素。若存在這樣的資料元素,則稱查詢成功的,否則查詢不成功。查詢是許多重要的電腦程式中 最耗費時間的部分,查詢演算法的優劣密切關係著查...
資料結構 查詢
一.靜態查詢表 靜態查詢表是僅對查詢表進行查詢操作,而不能改變其中資料的線性表,可以是基於陣列的順序儲存或以線性鍊錶儲存。靜態查詢表主要有順序表 有序順序表和索引順序表三種。1.順序查詢 函式模型 int seqsearch element list,int searchnum,int n 2.折半...