最全Python 算法實現資源彙總!

【導語】數據結構與算法是所有人都要學習的基礎課程,自己寫算法的過程可以幫助我們更好地理解算法思路,不要輕視每一個算法,一些雖然看似容易,但可能有很多坑。但是坑還是要自己一個一個踩過來的,而且也只有自己踩過坑,才能讓自己從理論到技能都得到提升。為了幫助大家在這個假期能提高學習效率,進階 Python 技能,筆者為大家推薦了一份用 Python代碼實現算法的資源帖,涵蓋從入門到高級的各類算法。


下文中,筆者首先對項目的整體內容進行了一個歸納,之後為大家選取了幾個內容比較豐富的部分,供大家更高效地使用這一資源。


最全Python 算法實現資源彙總!


項目概覽

這個項目為大家彙總了Python標準庫實現的大部分算法,對於一些神經網絡模型也有所涉及。在代碼的效率上,該項目的內容可能並沒有 Python 標準庫那樣高效,但是作為一個學習資源還是很值得一讀。下面對項目的內容進行一個大概的梳理。為了使得內容更加易讀,筆者將該項目中的內容劃分為了五個部分。

基礎操作部分

字符串處理與查找

排序

查找

數據結構

隊列

鏈表

哈希表

二叉樹

字典樹

並查集

運算部分

布爾運算

基礎數學運算

線性代數與矩陣

算數分析

網絡協議部分

文件傳輸

網絡流

服務端與客戶端

進階部分

機器學習

神經網絡

圖像處理

其他

動態編程

編程題解題集

密碼學

重點內容介紹

在這個項目中並不是對所有內容都進行了詳細介紹,有部分主題的代碼非常豐富。為了幫助大家高效地利用這一學習資源,筆者將其中比較詳細的部分單獨摘出,並做一個簡單的梳理,希望對大家有所幫助。

數據結構

在 data_structure 文件夾下,項目作者提供了大部分常用的 python 的實現代碼,包括哈希表、堆、棧、隊列等等。具體如下圖所示。

最全Python 算法實現資源彙總!


排序

在 sorts 文件夾下,作者給出了關於相關排序算法的實現,包括冒泡排序、插入排序、堆排序等大部分常用算法。部分算法見下圖。

最全Python 算法實現資源彙總!


查找

針對於查找問題,作者在 searches 文件夾中給出了包括順序查找、二分查找、禁忌搜索等常見查找算法的實現。

最全Python 算法實現資源彙總!


動態編程

在 dynamic_programming 部分,作者提供了一些常用的動態編程方法,代碼主要針對於各類動態編程任務。下圖展示了部分代碼列表。

最全Python 算法實現資源彙總!


圖結構的相關算法

在 graphs 文件夾下,作者針對於圖結構的相關算法給出了代碼,包括 dijkstra 最短路徑算法及其變體等。下圖展示了部分代碼。

最全Python 算法實現資源彙總!


數學運算

在 maths 文件夾下,作者對 python 標準庫支持的一些運算操作進行了實現,包括基礎的加減乘除運算、查找最大/最小值等等,部分代碼如下。


最全Python 算法實現資源彙總!


機器學習部分

在 machine_learning 文件夾中的內容主要為傳統的機器學習方法的代碼實現,包括隨機森林、樸素貝葉斯、kmeans 算法、線性迴歸等。

最全Python 算法實現資源彙總!


密碼學

在 ciphers 這一部分,作者給出了base64等編碼的轉碼操作,並針對凱撒密碼等加密方法給出了相應的實現代碼。部分代碼如下。


最全Python 算法實現資源彙總!


ProjectEuler 習題集解答


ProjectEuler 是一個在線習題集,它與LeetCode等習題集不同的地方在於,該習題集主要針對於具有一定數學基礎的人入門 Python 編程使用。該網站會對代碼的效率進行檢查。在 project_euler 文件夾中,作者提供了33個習題的解答代碼,幫助大家獲得更愉悅的刷題體驗。


結語


以上就是今天筆者為大家分享的算法實現大內容,希望對大家有所幫助!


關注,後臺領取私信小編“學習”領取編程資源


分享到:


相關文章: