數(shù)據(jù)結構—查找

給定一個值K,在含有n個記錄的文件中進行搜索,尋找一個關鍵值等于K的記錄,如找到則輸出該記錄,負責輸出查找不成功的信息。

靜態(tài)查找表

1、順序查找
用逐一比較的辦法順序查找關鍵字。

  • 性能分析:順序查找平均查找長度為(n+1)/2,時間效率為O(n)
  • 優(yōu)點:算法簡單、適應面廣,對查找表的結構沒有要求,無論記錄是否按關鍵字有序排列均可使用。
    缺點:在n值較大時,平均查找長度較大,查找效率較低。

2、折半查找(二分查找)
先給數(shù)據(jù)排序,形成有序表,把待查數(shù)據(jù)值與查找范圍的中間元素值進行比較,會有四種情況出現(xiàn):
1)待查找數(shù)值與中間元素值相等,返回中間元素值的索引。
2)待查找數(shù)值比中間元素值小,則以整個查找范圍的前半部分作為新的查找范圍,執(zhí)行1),直到找到相等的值。
3)待查找數(shù)值比中間元素值大,則以整個查找范圍的后半部分作為新的查找范圍,執(zhí)行1),直到找到相等的值
4)如果最后找不到相等的值,則返回錯誤提示信息。
折半查找比順序查找效率高
3、分塊查找
又稱索引順序查找,是對順序查找方法的一種改進,其性能介于順序查找和折半查找之間。
在分塊查找過程中,首先把表分成若干塊,每一塊中的關鍵字不一定有序,但塊之間是有序的,即后一塊中所有記錄的關鍵字均大于前一塊中最大的關鍵字,還建立了一個索引表,索引表按關鍵字有序。


分塊查找示意圖
哈希表

是根據(jù)關鍵碼值(Key value)而直接進行訪問的數(shù)據(jù)結構。由關鍵碼的值決定數(shù)據(jù)的存儲地址,以加快查找速度。這個映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表。
優(yōu)點:查找速度極快(O(1)),查找效率與元素個數(shù)n無關!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. 查找的基本概念 查找表:同一類型的數(shù)據(jù)元素的集合。關鍵字:關鍵字是數(shù)據(jù)元素或記錄中某個數(shù)據(jù)項的值,用它可以標...
    yinxmm閱讀 4,300評論 0 0
  • 一些概念 數(shù)據(jù)結構就是研究數(shù)據(jù)的邏輯結構和物理結構以及它們之間相互關系,并對這種結構定義相應的運算,而且確保經(jīng)過這...
    Winterfell_Z閱讀 6,603評論 0 13
  • 數(shù)據(jù)元素:是組成數(shù)據(jù)的、有一定意義的基本單位,也被稱為紀錄。 查找表:由同一類型的數(shù)據(jù)元素(或記錄)構成的集合。 ...
    sunhq閱讀 476評論 0 0
  • 查找概論 查找表(search table): 由同一類型的數(shù)據(jù)元素(或記錄)構成的集合. 查找: 就是根據(jù)給定的...
    安靜1337閱讀 901評論 0 50
  • 數(shù)據(jù)結構與算法系列文章數(shù)據(jù)結構與算法 - 時間復雜度數(shù)據(jù)結構與算法 - 線性表數(shù)據(jù)結構與算法 - 樹形結構數(shù)據(jù)結構...
    且行且珍惜_iOS閱讀 4,137評論 2 2

友情鏈接更多精彩內容