跳躍表-原理(轉載)

數(shù)據(jù)結構的擴展步驟:(在真正設計的時候归敬,下面的步驟的順序可以置換)

  1.選擇一種基礎數(shù)據(jù)結構

  2.確定基礎數(shù)據(jù)結構中需要維護的附加信息

  3.檢驗基礎數(shù)據(jù)結構上的基本修改操作能否維護附加信息

  4.設計需要的新操作

如果要插入數(shù)值3切诀,首先要知道3應該插入的位置。使用二分查找可以最快定位棺榔,這一步時間復雜度是O(logN)。

插入過程中往毡,原數(shù)組中所有大于3的數(shù)都要右移溶推,這一步時間復雜度是O(N)。所以總體時間復雜度是O(N)帅霜。

如果使用鏈表匆背,插入新數(shù)的方式如下:

如果要插入3,首先要知道3應該插入的位置身冀。鏈表無法使用二分查找钝尸,只能和原鏈表中的節(jié)點逐一比較大小來確定位置。這一步的時間復雜度是O(N)搂根。

插入的過程倒是很容易珍促,直接改變節(jié)點指針的目標,時間復雜度O(1)剩愧。因此總體的時間復雜度也是O(N)猪叙。

對于比較龐大的數(shù)據(jù)操作來說,這兩種方法顯然都太慢了仁卷。

——————————————


跳躍表(Skip Lists)是一種基于有序鏈表的擴展穴翩。


插入

新節(jié)點和各層索引節(jié)點逐一比較,確定原鏈表的插入位置锦积。O(logN)

把索引插入到原鏈表芒帕。O(1)

利用拋硬幣的隨機方式,決定新節(jié)點是否提升為上一級索引丰介。結果為“正”則提升并繼續(xù)拋硬幣背蟆,結果為“負”則停止鉴分。O(logN)

總體上,跳躍表插入操作的時間復雜度是O(logN)带膀,而這種數(shù)據(jù)結構所占空間是2N志珍,既空間復雜度是 O(N)。

刪除

自上而下垛叨,查找第一次出現(xiàn)節(jié)點的索引伦糯,并逐層找到每一層對應的節(jié)點。O(logN)

刪除每一層查找到的節(jié)點点额,如果該層只剩下1個節(jié)點舔株,刪除整個一層(原鏈表除外)。O(logN)

總體上还棱,跳躍表刪除操作的時間復雜度是O(logN)载慈。

進步是留給時間最美的禮物

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市珍手,隨后出現(xiàn)的幾起案子办铡,更是在濱河造成了極大的恐慌,老刑警劉巖琳要,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寡具,死亡現(xiàn)場離奇詭異,居然都是意外死亡稚补,警方通過查閱死者的電腦和手機童叠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來课幕,“玉大人厦坛,你說我怎么就攤上這事≌Ь” “怎么了杜秸?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長润绎。 經(jīng)常有香客問我撬碟,道長,這世上最難降的妖魔是什么莉撇? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任呢蛤,我火速辦了婚禮,結果婚禮上稼钩,老公的妹妹穿的比我還像新娘顾稀。我一直安慰自己,他們只是感情好坝撑,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布静秆。 她就那樣靜靜地躺著,像睡著了一般巡李。 火紅的嫁衣襯著肌膚如雪抚笔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天侨拦,我揣著相機與錄音殊橙,去河邊找鬼。 笑死狱从,一個胖子當著我的面吹牛膨蛮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播季研,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼敞葛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了与涡?” 一聲冷哼從身側響起惹谐,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驼卖,沒想到半個月后氨肌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡酌畜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年怎囚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桥胞。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡恳守,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出埠戳,到底是詐尸還是另有隱情井誉,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布整胃,位于F島的核電站颗圣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏屁使。R本人自食惡果不足惜在岂,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛮寂。 院中可真熱鬧蔽午,春花似錦、人聲如沸酬蹋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骄恶,卻和暖如春食铐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背僧鲁。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工虐呻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寞秃。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓斟叼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親春寿。 傳聞我的和親對象是個殘疾皇子朗涩,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一些概念 數(shù)據(jù)結構就是研究數(shù)據(jù)的邏輯結構和物理結構以及它們之間相互關系,并對這種結構定義相應的運算堂淡,而且確保經(jīng)過這...
    Winterfell_Z閱讀 5,787評論 0 13
  • 跳躍表簡介 我們先拋開redis馋缅,單獨了解下跳越表 skiplist本質(zhì)上也是一種查找結構,用于解決算法中的查找問...
    super_pirlo閱讀 3,365評論 0 59
  • 跳表的定義 跳表(SkipList):增加了向前指針的鏈表叫做跳表绢淀。跳表全稱叫做跳躍表萤悴,簡稱跳表。跳表是一個隨機化...
    尼桑麻閱讀 648評論 0 1
  • 搞懂單鏈表常見面試題 Hello 繼上次的 搞懂基本排序算法皆的,這個一星期覆履,我總結了,我所學習和思考的單鏈表基礎知識...
    醒著的碼者閱讀 4,585評論 1 45
  • 靜謐的夜空好似少了些繁星的點綴费薄, 變得沒有那么清晰硝全, 窗外的雨還在淅淅瀝瀝的下著, 聽著那斷了思緒般的聲音剎那間 ...
    蘭西040郭翔宇閱讀 311評論 0 9