問耕 發自 凹非寺
量子位 出品 | 公眾號 QbitAI
今天推薦一個Python學習的乾貨。
幾個印度小哥,在GitHub上建了一個各種Python算法的新手入門大全,現在標星已經超過2.6萬。這個項目主要包括兩部分內容:一是各種算法的基本原理講解,二是各種算法的代碼實現。
傳送門在此:
https://github.com/TheAlgorithms/Python
簡單介紹下。
算法的基本原理講解部分,包括排序算法、搜索算法、插值算法、跳躍搜索算法、快速選擇算法、禁忌搜索算法、加密算法等。
這部分內容,主要介紹各種不同算法的原理,其中不少介紹還給出了動態示意圖,以更初學者能夠更直觀的理解。搬運幾個示例:
雞尾酒排序算法
雞尾酒(Cocktail shaker)排序,也叫雙向冒泡排序(Bidirectional Bubble Sort)等。這是冒泡排序的一種變體。不同之處在於,冒泡排序是從低到高比較序列裡的每個元素,而雞尾酒排序從兩個方向(低到高、高到低)來回排序,效率更高。
快速選擇算法
快速選擇(Quick Select)算法,用於查找無序列表中的第k個最小元素。這種算法及其變體,是實踐中最常用的高效選擇算法。
快速選擇算法與快速排序算法類似,選擇一個元素作為基準來對元素進行分區,將小於和大於基準的元素分在基準左邊和右邊的兩個區域。不同的是,快速選擇並不遞歸訪問雙邊,而是隻遞歸進入一邊的元素中繼續尋找。
ROT13加密算法
Rot13(rotate by 13 places)是一種非常簡單的替換加密算法,用於加密26個英語字母。方法是:把每個字母用其後第13個字母代替。
當然這種算法破解起來也很簡單,只需要反向替換就行,所以這種算法幾乎提供不了什麽加密安全性,並且經常作為弱加密的典型案例。
此外,這個項目還給出了多種Python算法的代碼實現。
包括二叉樹(Binary Tree)、動態規劃(Dynamic Programming)、散列(Hashes)、線性代數、機器學習、神經網絡等。
比方在機器學習這個類別裡,給出了隨機森林分類、隨機森林回歸、樸素貝葉斯、決策樹、k值聚類、線性回歸、邏輯回歸、感知機等。
這裡截個梯度下降代碼實現的圖,做個示意。
希望這個項目對你學習有幫助,再給一次傳送門:
https://github.com/TheAlgorithms/Python
還有一事。
這幾個印度小哥,不僅僅搞了一個學Python的項目,類似的資源收集項目還包括:Java、C、C++、Scala、C#等……
—完—
小程序|get更多AI資訊與資源
加入社群
量子位AI社群開始招募啦,量子位社群分:AI討論群、AI+行業群、AI技術群;
歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字“微信群”,獲取入群方式。(技術群與AI+行業群需經過審核,審核較嚴,敬請諒解)
喜歡就點「在看」吧 !