索引就是把乙個關鍵字與它對應的記錄相關聯的過程。
索引按照結構可以分為線性索引,樹形索引和多級索引。我們這裡就只介紹線性索引技術。
所謂線性索引就是將索引項集合組織為線性結構,也成為索引表。分為:稠密索引,分塊索引和倒排索引。
稠密索引
對於稠密索引這個索引表來說,索引項一定是按照關鍵碼有序的排列。
分塊索引
對於分塊有序的資料集,將每塊對應乙個索引項,這種索引方法叫做分塊索引。如圖:
分塊有序,是把資料集的記錄分成了若干塊,並且這些塊需要滿足倆個條件:塊內無序,塊間有序。
我們定義的索引的索引項結構分三個資料項:
1.最大關鍵碼,它儲存每一塊中的最大關鍵字,這樣的好處就是可以使得在它之後的下一塊中的最小關鍵字也能比這一塊的最大的關鍵字要大。
2.儲存了塊中的記錄個數,以便於迴圈時使用;
3.用於指向塊首資料元素的指標,便於開始對這一塊中記錄進行遍歷。
在分塊索引表中查詢,就是分倆部進行;
1.在分塊索引表中查詢關鍵字所在的塊。
2.根據塊首指標找到相應的塊,並在塊中順序查詢關鍵碼。
倒排索引
我們都知道搜尋引擎搜尋乙個詞是非常快的,但你有沒有想過為什麼搜尋引擎能夠以這麼快的速度從數以億計的網頁中找到你想要的內容?乙個很重要的原因是,現代的搜尋引擎基本上都使用了倒序索引
技術。
為了更好的建立被搜尋的關鍵字和含有這些關鍵字的頁面之間的對映關係,倒序索引
所以,倒序索引相當於一本出處大字典,查閱其中的每個詞彙,都可以告訴你它的所有出處。
如:1.books and friends should be few but good.
資料結構之線性索引查詢
在資料結構的查詢中,有順序查詢 時間複雜度o n 有序查詢中的三種優化查詢 折半查詢,時間複雜度o logn 插值查詢,時間複雜度o logn 針對均勻資料時比折半要優異 斐波那契查詢,時間複雜度o logn 只需要加法計算 上述查詢針對海量資料時,耗時非常大,故有了索引查詢。線性索引包括 稠密索引...
4 資料結構高階四靜態查詢之索引順序查詢
4.資料結構高階四靜態查詢之索引順序查詢 凡是新的事情在起頭總是這樣一來的,起初熱心的人很多,而不久就冷淡下去,撒手不做了,因為他已經明白,不經過一番苦工是做不成的,而只有想做的人,才忍得過這番痛苦。陀思妥也夫斯基 我們繼續靜態查詢的索引順序查詢。首先把表長為n的線性表分成b塊,前b 1塊記錄個數為...
資料結構 8 查詢 線性查詢
int sequential search int a,int n,int key n是要查詢的長度,key是關鍵字 return 0 int sequential search2 int a,int n,int key n是要查詢的長度,key是關鍵字 return i int binary se...