當前位置:首頁 » 操作系統 » 演算法精妙

演算法精妙

發布時間: 2024-02-29 19:38:52

⑴ 你在編程時發現過哪些非常精妙的演算法

用一個值記錄出現的數,一個值記錄出現次數,若下一個數等於記錄的數,則出現次數+1,若不等,則-1,當出現次數被減到0時,替換記錄的數,並把出現次數記為1,那麼最後,因為不同的數出現次數一定抵不過相同數出現次數,所以最終遍歷完數組,一定是存儲著次數超過數組大小一半的ans,並且出現次數還大於等於1。

⑵ lru演算法是什麼

lru演算法是一種頁面置換演算法,在對於內存中但是又不用的數據塊,叫做LRU,操作系統會根據那些數據屬於LRU而將其移出內存而騰出空間來載入另外的數據。

LRU演算法:最近最少使用,簡單來說就是將數據塊中,每次使用過的數據放在數據塊的最前端,然後將存在的時間最長的,也就是數據塊的末端的數據剔除掉這就是LRU演算法。

如果進程被調度,該進程需要使用的外存頁(數據)不存在於數據塊中,這個現象就叫做缺頁。如果這個數據此時不在,就會將這個數據從加入到數據塊首部。

數據塊插入與剔除:每次有新數據到來時,會將其放入數據塊首部,當數據每次被訪問時,將這個數據插入數據塊的首部如果數據塊滿了,每次新進的數據都會將數據塊尾部的數據擠出數據塊。

差距:

為了盡量減少與理想演算法的差距,產生了各種精妙的演算法,最少使用頁面置換演算法便是其中一個。LRU演算法的提出,是基於這樣一個事實:在前面幾條指令中使用頻繁的頁面很可能在後面的幾條指令中頻繁使用。

反過來說,已經很久沒有使用的頁面很可能在未來較長的一段時間內不會被用到。這個,就是著名的局部性原理——比內存速度還要快的cache,也是基於同樣的原理運行的。因此,我們只需要在每次調換時,找到最少使用的那個頁面調出內存。這就是LRU演算法的全部內容。

熱點內容
php輸出array 發布:2024-11-28 13:30:15 瀏覽:745
汽車安卓大屏的高德怎麼卸載 發布:2024-11-28 13:26:00 瀏覽:701
androidbitmap失真 發布:2024-11-28 13:05:04 瀏覽:866
php圖片識別文字 發布:2024-11-28 12:55:23 瀏覽:823
redis永久緩存 發布:2024-11-28 12:37:40 瀏覽:56
php是自學網 發布:2024-11-28 12:33:57 瀏覽:733
php採集系統 發布:2024-11-28 12:32:04 瀏覽:908
資料庫恢復的實現技術 發布:2024-11-28 12:25:26 瀏覽:6
壓縮圖檔 發布:2024-11-28 12:25:23 瀏覽:424
自定義緩存 發布:2024-11-28 12:25:07 瀏覽:236