大話資料結構之 稠密索引

2021-07-28 02:23:35 字數 748 閱讀 6553

前面講的兩種查詢方法都是基於有序小量的基礎上,但是資料集的增長速度一般都很迅速,如微博,日活可以達到上千萬上億條,這麼多的資料,如果按照某個關鍵字進行排列是不現實的,通常都是按照先後順序儲存的。

對於這樣的資料表,如何能夠快速的查詢到需要的資料呢?辦法就是——索引

資料結構的最終目的是提高資料的處理速度,索引是為了加快查詢速度而設計的一種資料結構。

所謂索引,就是把乙個關鍵字與它對應的記錄相關聯的過程,乙個索引由若干個索引項構成,每個索引項至少應包含關鍵字和其對應的記錄在儲存器中的位置等資訊。

索引技術是組織大型資料庫以及磁碟檔案的一種重要技術。

索引按結構可分為:

所謂線性索引,就是將索引項集合組織為線性結構,也稱為線性表。

線性索引我們重點學習:

稠密索引

如下圖所示:

稠密索引需要應對的是成千上萬的記錄,對於稠密索引這個索引表來說,索引項一定是按照關鍵碼有序的排列。

索引項有序,也就意味著我們查詢時可以使用折半查詢、插值查詢等有序查詢技術,大大提高效率。

如果資料項比較小,稠密索引具有相當的優勢。

如果資料項非常大,也就意味著索引項也必須和資料項的長度規模一樣大,這樣查詢範圍降低了效率。

大話資料結構之 分塊索引

稠密索引因為索引項和資料集的記錄個數相同,所以控制項代價很大。為了減少索引項的個數,我們可以對資料集進行分塊,使其分塊有序,然後再對每一塊建立乙個索引項,從而減少索引項的個數。分塊有序,是把資料集的個數分成了若干塊,並且這些塊需要滿足兩個條件 對於分塊有序的資料集,將每塊對應乙個索引項,這種索引方法...

大話資料結構之樹

看了一下大話資料結構的樹原始碼對應基礎差的東西還是不太友好,這邊寫了一篇簡單的。個人觀點 例如 上面這一棵樹寫個簡單關於樹的 實際樹的運用還是圍繞二叉樹和紅黑樹展開 include pch.h include include struct node typedef node bitnode type...

《大話資料結構》

函式的漸進增長 我們現在來判斷一下,兩個演算法a和b哪個更好。假設兩個演算法的輸入規模都是n,演算法a要做2n 3次操作,你可以理解為先有乙個n次的迴圈,執行完成後,再有乙個n次迴圈,最後有三次賦值或運算,共2n 3次操作。演算法b要做3n 1次操作,你覺得它們誰更快呢 準確來說,答案是不一定的 當...