【筆記分享】算法圖解1

因本人最近在惡補數據結構與算法,學識經驗有限,如有不正之處望讀者指正,不勝感激;也望藉此平臺留下學習筆記以溫故而知新。這一篇博客主要是最近剛開始接觸算法圖解一書,寫的通俗易懂,很多圖表幫忙理解,所以講隨手筆記分享至此,希望對您有所幫助。

算法圖解

一些常見的大O運行時間:

說明:

 

廣度優先搜索:

廣度優先搜索的最終代碼如下

 

狄克斯特拉算法包含的步驟(針對加權圖場景)

說明:如果有負權邊,就不能使用狄克斯特拉算法

 

NP問題:

以難解著稱的問題

如何判別沒辦法解決的問題是不是NP完全問題呢

 

動態規劃

遞歸的子集,遞歸部分有重疊,爲了減少時間複雜度,所以將中間過程都保存下來的遞歸

動態規劃實際應用的場景:

 

K最近鄰算法

K最近鄰算法常見應用:

推薦系統中基於用戶的推薦和基於物品的推薦

 

將KNN用於兩項基本工作:分類和迴歸

分類就是編組

迴歸就是預測一個數字

 

 

二叉查找樹

對於其中每個節點,左子節點的值都比它小,右子節點的值都比它大

優勢:插入和刪除操作的速度很快

 

反向索引(倒排索引)

也就是搜索引擎的基本工作原理

並行算法

影響並行算法不能線性提高算法速度的原因有兩個:

 

MapReduce

是一種流行的分佈式算法:主要包括映射函數和歸併函數兩部分

Map

Reduce

 

布隆過濾器和HyperLogLog

是一種概率型數據結構,提供的答案有可能不對,但很可能是正確的

可能出現報錯的情況,即可能指出在集合中查找某個主鍵是存在的,但是實際上並沒有

不可能出現漏報的情況,如果布隆過濾器說集合中沒有這個主鍵,那就一定不存在

 

SHAsecure hash algorithm 安全散列算法

典型應用1;可用於比較兩個文件是否相同

典型應用2:計算密碼的散列值

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章