算法學(xué)習(xí)筆記:實現(xiàn)LRU緩存淘汰算法

鏈表經(jīng)典應(yīng)用場景:LRU緩存算法稿辙。
緩存淘汰策略常見的有三種:

  • 先進先出策略(FIFO)
  • 最少使用策略(LFU)
  • 最近最少使用策略LRU

鏈表

鏈表與數(shù)據(jù)不同的之處在于赋咽,內(nèi)存不是連續(xù)的脓匿,可以將分散的內(nèi)存塊串聯(lián)起來使用陪毡。
鏈表結(jié)構(gòu)大概有三種:單鏈表毡琉,雙向鏈表桅滋,循環(huán)鏈表

單鏈表

單鏈表丐谋,摘自極客時間

鏈表需要有頭節(jié)點與尾節(jié)點泌豆。單鏈表中頭結(jié)點表示:鏈表的基地址;尾節(jié)點志向的地址是空地址NULL陨倡。

數(shù)組進行插入語刪除操作的時候许布,為了保證內(nèi)存的連續(xù)性蜜唾,需要做數(shù)據(jù)的搬移操作袁余,時間復(fù)雜度是O(N)棚饵;
鏈表中插入刪除操作噪漾,不需要保證內(nèi)存的連續(xù)性题翰,插入與刪除是十分快速的。
但是隨機訪問效率就特別低焦匈,需要從頭結(jié)點開始查找。隨機查找的時間復(fù)雜度就是O(N)荚虚。

循環(huán)鏈表

相對于單鏈表來說版述,尾節(jié)點指向頭結(jié)點即可。
最著名的是 約瑟夫環(huán)問題.

雙向鏈表

雙向鏈表支持兩個 方向,在一個實體中有指向上一個節(jié)點漓帚,也有指向下一個節(jié)點的指針尝抖。


雙向鏈表,來自極客時間

缺點:
占用的空間多搅荞,浪費存儲空間

優(yōu)點:
操作上更加靈活,插入與刪除操作更加簡單與高效。

  • 刪除給定的某個值節(jié)點: 需要從頭開始遍歷婉称,時間復(fù)雜度是O(1),主要耗時是查找時間是O(N).
  • 對于刪除給定的指針指向的節(jié)點: 找到要刪除的節(jié)點,要刪除前一個節(jié)點俗壹,或者向前面插入一個節(jié)點藻烤。都是十分方便的不需要再查詢涎显。

雙向循環(huán)鏈表

把循環(huán)鏈表與雙向鏈表組合在一起形成。

實現(xiàn)LRU緩存淘淘算法

思路:

  1. 單向鏈表存儲數(shù)據(jù)讨勤,每次從頭遍歷數(shù)據(jù)潭千,如果存在那么刪除原先的位置脊岳,再把數(shù)據(jù)插入到頭部即可。
  2. 如果此數(shù)據(jù)不存在緩存表中亿驾,緩存沒有滿莫瞬,直接插入到鏈表的頭部疼邀。滿了旁振,就刪除尾節(jié)點吉嚣,再插入到頭部指針尝哆。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子姥敛,更是在濱河造成了極大的恐慌彤敛,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袄秩,死亡現(xiàn)場離奇詭異之剧,居然都是意外死亡,警方通過查閱死者的電腦和手機蟹肘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阳欲,“玉大人,你說我怎么就攤上這事赊窥〕对伲” “怎么了熄阻?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钾军。 經(jīng)常有香客問我,道長樱哼,這世上最難降的妖魔是什么搅幅? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮琢融,結(jié)果婚禮上宿亡,老公的妹妹穿的比我還像新娘。我一直安慰自己圈匆,他們只是感情好跃赚,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叹括,像睡著了一般汁雷。 火紅的嫁衣襯著肌膚如雪侠讯。 梳的紋絲不亂的頭發(fā)上继低,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天婿脸,我揣著相機與錄音柄驻,去河邊找鬼抑钟。 笑死在塔,一個胖子當(dāng)著我的面吹牛蛔溃,可吹牛的內(nèi)容都是我干的徽曲。 我是一名探鬼主播秃臣,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼得院!你這毒婦竟也來了祥绞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蜕径,失蹤者是張志新(化名)和其女友劉穎兜喻,沒想到半個月后朴皆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泛粹,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年晶姊,在試婚紗的時候發(fā)現(xiàn)自己被綠了扒接。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钾怔,靈堂內(nèi)的尸體忽然破棺而出碱呼,到底是詐尸還是另有隱情宗侦,我是刑警寧澤巍举,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站凝垛,受9級特大地震影響懊悯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梦皮,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一炭分、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剑肯,春花似錦捧毛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咐吼。三九已至,卻和暖如春肌幽,著一層夾襖步出監(jiān)牢的瞬間迄薄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工新症, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人界阁。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓丽焊,卻偏偏與公主長得像写穴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

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