基於自然機率的無需人爲平衡的skiplist的美之展示

任何事情都沒法阻擋我對一種簡單之美的由衷驚歎。
半夜思索,沒法入眠,索性起牀看會書,關於中東文明的,但是又看不進去,也許是潮熱的緣由 吧...還不如靜下心來寫一篇意識流文章,我指的是不用思考的那種,我已經被近東,中東的錯綜複雜的歷史搞的有點煩了,那真是太難了。然而你能想象我指的 那個不用思考的東西是一個算法嗎?算法不都是很難的嗎?真的就是一個算法,也能夠說是一個數據結構,這就是skiplist。
       能夠從網上找到大量深刻分析skiplist的資料,包括分析其時間複雜度,空間佔用狀況的。可是本文不,由於我不想在一個如此美好的早上就消耗腦細胞,也不能說是早上,此時凌晨3點整!!注意,我是不須要怎麼睡覺還能保持精力的那種怪人。
       那就開始了。
       說到查找,首先能想到的幾乎就是各類查找樹,固然,實際上在實用主義看來用得比較多的仍是HASH,查找樹可能學院派更加青睞一些吧。至於HASH,它可 能受制於擴展性,須要不斷的reHASH操做,然而對於動態節點,有一種一致性HASH能夠參考,大量用於分佈式環境,它完美解決了擴展性問題。固然它體 現了另外一種動態美,之後若是哪天早上又打雞血了,會寫一篇分析一下的。提到HASH的不易擴展性以及reHASH操做,查找樹事實上是能夠無限擴展的,但 是在擴展過程當中,會破壞樹的平衡性,破壞了平衡性就會嚴重損耗查找樹的查找性能,所以爲了在擴展過程當中保持平衡,須要一種人爲的干預,這種干預就是所謂的 「平衡」操做。
       無論對於AVL樹,2-3-4樹,仍是衍生出來的紅黑樹,都是以上所述的這類查找樹的典型。若是說有一種數據結構,在擴展過程當中能夠天然而然地保持平衡性,根本無需人爲干預,那該有多好。
       我是一個基因決定論的信徒,相信任何的爆發或者隕滅都是由原始基本基因決定的,固然這是蝴蝶效應的一種體現。我自然反對健身房減肥,由於我相信瘦的人是基 因決定的,怎麼吃都不會胖,就比如掰手腕,不少人根本就沒有練過,可是自然力氣驚人,瞬間扳倒在健身房練了好幾年的,這些人一旦離開了健身房,立刻肌肉就 變成了消失了,脂肪愈來愈多...這種在健身房練就一身肌肉的,就好像AVL樹,紅黑樹,須要花費成本不斷地進行平衡斧正,而對於那種自然基因決定的擁有 完美曲線的人,就比如skiplist,快樂生活,自由成長。

算法

skiplist簡介

本文就不介紹了,不過當你baidu了以後,你幾乎也就理解了skiplist的所有,也就無需再接着看下去了,所以更多的,本文屬於我本身的記錄隨筆。

數據結構

插入過程理解skiplist

下圖展現了一個skiplist的插入構建過程:
分佈式


wKiom1WuwZbzL8sNAAPMI2vAZ-A150.jpg

wKioL1Wuw2jzA09eAAUXabeG_R4045.jpg


skiplist查找示例

wKiom1WuwXGwlInKAAD_G2UGFgc396.jpg

skiplist的美之展示

在畫圖的過程當中,我發現不經意間全部的話都表達在圖示裏面了,無需更多的言語,這難道就是簡單之美嗎?

ide

wKioL1Wuw0TALBKYAAk41VZ35ro941.jpg


統計性能!統計性能!統計性能!統計性能!仍是統計性能!
性能

相關文章
相關標籤/搜索