一個Python就可以實作所有的演算法

爱喝马黛茶的安东尼
發布: 2019-08-20 17:58:30
轉載
2612 人瀏覽過

一個Python就可以實作所有的演算法

今天推薦一個Python學習的乾貨。

幾個印度小哥,在GitHub上建了一個各種Python演算法的新手入門大全,現在標星已經超過2.6萬。

這個專案主要包括兩部分內容:一是各種演算法的基本原理講解,二是各種演算法的程式碼實作。

傳送門在此:

https://github.com/TheAlgorithms/Python

#簡單介紹下。

演算法的基本原理講解部分,包括排序演算法、搜尋演算法、插值演算法、跳躍搜尋演算法、快速選擇演算法、禁忌搜尋演算法、加密演算法等。

相關推薦:《Python影片教學

這部分內容,主要介紹各種不同演算法的原理,其中不少介紹也給出了動態示意圖,以更初學者能夠更直觀的理解。搬運幾個例子:

雞尾酒排序演算法

一個Python就可以實作所有的演算法

雞尾酒(Cocktail shaker)排序,也叫雙向冒泡排序(Bidirectional Bubble Sort)等。這是冒泡排序的變體。不同之處在於,冒泡排序是從低到高比較序列裡的每個元素,而雞尾酒排序從兩個方向(低到高、高到低)來回排序,效率更高。

快速選擇演算法

一個Python就可以實作所有的演算法

#快速選擇(Quick Select)演算法,用於尋找無序列表中的第k個最小元素。這種演算法及其變體,是實務上最常用的高效選擇演算法。

快速選擇演算法與快速排序演算法類似,選擇一個元素作為基準來對元素進行分區,將小於和大於基準的元素分在基準左邊和右邊的兩個區域。不同的是,快速選擇並不會遞歸訪問雙邊,而是只遞歸進入一邊的元素中繼續尋找。

ROT13加密演算法

一個Python就可以實作所有的演算法

Rot13(rotate by 13 places)是一種非常簡單的替換加密演算法,用於加密26個英語字母。方法是:把每個字母用其後第13個字母代替。

當然這種演算法破解起來也很簡單,只需要反向替換就行,所以這種演算法幾乎提供不了什麼加密安全性,並且經常作為弱加密的典型案例。

此外,這個專案也給了多種Python演算法的程式碼實作。

包括二元樹(Binary Tree)、動態規劃(Dynamic Programming)、雜湊(Hashes)、線性代數、機器學習、神經網路等。

一個Python就可以實作所有的演算法

比方在機器學習這個類別裡,給出了隨機森林分類、隨機森林迴歸、樸素貝葉斯、決策樹、k值聚類、線性迴歸、邏輯迴歸、感知機等。

這裡截個梯度下降程式碼實現的圖,做個示意:

一個Python就可以實作所有的演算法

#希望這個專案對你學習有幫助,再給一次傳送門:

https://github.com/TheAlgorithms/Python

還有一事。

這幾個印度小哥,不只搞了一個學Python的項目,類似的資源收集項目還包括:Java、C、C 、Scala、C#等…

一個Python就可以實作所有的演算法

以上是一個Python就可以實作所有的演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jianshu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板