【導(dǎo)語】數(shù)據(jù)結(jié)構(gòu)與算法是所有人都要學(xué)習(xí)的基礎(chǔ)課程,自己寫算法的過程可以幫助我們更好地理解算法思路,不要輕視每一個(gè)算法,一些雖然看似容易,但可能有很多坑。但是坑還是要自己一個(gè)一個(gè)踩過來的,而且也只有自己踩過坑,才能讓自己從理論到技能都得到提升。為了幫助大家在這個(gè)假期能提高學(xué)習(xí)效率,進(jìn)階 Python 技能,營長為大家推薦了一份用 Python代碼實(shí)現(xiàn)算法的資源帖,涵蓋從入門到高級(jí)的各類算法。
下文中,營長首先對(duì)項(xiàng)目的整體內(nèi)容進(jìn)行了一個(gè)歸納,之后為大家選取了幾個(gè)內(nèi)容比較豐富的部分,供大家更高效地使用這一資源。
項(xiàng)目概覽
這個(gè)項(xiàng)目為大家匯總了Python標(biāo)準(zhǔn)庫實(shí)現(xiàn)的大部分算法,對(duì)于一些神經(jīng)網(wǎng)絡(luò)模型也有所涉及。在代碼的效率上,該項(xiàng)目的內(nèi)容可能并沒有Python 標(biāo)準(zhǔn)庫那樣高效,但是作為一個(gè)學(xué)習(xí)資源還是很值得一讀。下面對(duì)項(xiàng)目的內(nèi)容進(jìn)行一個(gè)大概的梳理。為了使得內(nèi)容更加易讀,營長將該項(xiàng)目中的內(nèi)容劃分為了五個(gè)部分。
基礎(chǔ)操作部分
字符串處理與查找
排序
查找
數(shù)據(jù)結(jié)構(gòu)
隊(duì)列
鏈表
棧
堆
哈希表
圖
二叉樹
字典樹
并查集
運(yùn)算部分
布爾運(yùn)算
基礎(chǔ)數(shù)學(xué)運(yùn)算
線性代數(shù)與矩陣
算數(shù)分析
網(wǎng)絡(luò)協(xié)議部分
文件傳輸
網(wǎng)絡(luò)流
服務(wù)端與客戶端
進(jìn)階部分
神經(jīng)網(wǎng)絡(luò)
圖像處理
其他
動(dòng)態(tài)編程
編程題解題集
密碼學(xué)
重點(diǎn)內(nèi)容介紹
在這個(gè)項(xiàng)目中并不是對(duì)所有內(nèi)容都進(jìn)行了詳細(xì)介紹,有部分主題的代碼非常豐富。為了幫助大家高效地利用這一學(xué)習(xí)資源,營長將其中比較詳細(xì)的部分單獨(dú)摘出,并做一個(gè)簡單的梳理,希望對(duì)大家有所幫助。
數(shù)據(jù)結(jié)構(gòu)
在 data_structure 文件夾下,項(xiàng)目作者提供了大部分常用的 python 的實(shí)現(xiàn)代碼,包括哈希表、堆、棧、隊(duì)列等等。具體如下圖所示。
排序
在 sorts 文件夾下,作者給出了關(guān)于相關(guān)排序算法的實(shí)現(xiàn),包括冒泡排序、插入排序、堆排序等大部分常用算法。部分算法見下圖。
查找
針對(duì)于查找問題,作者在 searches 文件夾中給出了包括順序查找、二分查找、禁忌搜索等常見查找算法的實(shí)現(xiàn)。
動(dòng)態(tài)編程
在 dynamic_programming 部分,作者提供了一些常用的動(dòng)態(tài)編程方法,代碼主要針對(duì)于各類動(dòng)態(tài)編程任務(wù)。下圖展示了部分代碼列表。
圖結(jié)構(gòu)的相關(guān)算法
在 graphs 文件夾下,作者針對(duì)于圖結(jié)構(gòu)的相關(guān)算法給出了代碼,包括 dijkstra 最短路徑算法及其變體等。下圖展示了部分代碼。
數(shù)學(xué)運(yùn)算
在 maths 文件夾下,作者對(duì) python 標(biāo)準(zhǔn)庫支持的一些運(yùn)算操作進(jìn)行了實(shí)現(xiàn),包括基礎(chǔ)的加減乘除運(yùn)算、查找最大/最小值等等,部分代碼如下。
機(jī)器學(xué)習(xí)部分
在 machine_learning 文件夾中的內(nèi)容主要為傳統(tǒng)的機(jī)器學(xué)習(xí)方法的代碼實(shí)現(xiàn),包括隨機(jī)森林、樸素貝葉斯、kmeans 算法、線性回歸等。
密碼學(xué)
在 ciphers 這一部分,作者給出了base64等編碼的轉(zhuǎn)碼操作,并針對(duì)凱撒密碼等加密方法給出了相應(yīng)的實(shí)現(xiàn)代碼。部分代碼如下。
ProjectEuler 習(xí)題集解答
ProjectEuler 是一個(gè)在線習(xí)題集,它與LeetCode等習(xí)題集不同的地方在于,該習(xí)題集主要針對(duì)于具有一定數(shù)學(xué)基礎(chǔ)的人入門 Python 編程使用。該網(wǎng)站會(huì)對(duì)代碼的效率進(jìn)行檢查。在 project_euler 文件夾中,作者提供了33個(gè)習(xí)題的解答代碼,幫助大家獲得更愉悅的刷題體驗(yàn)。
結(jié)語
以上就是今天營長為大家分享的算法實(shí)現(xiàn)大禮包內(nèi)容,希望對(duì)大家有所幫助!具體項(xiàng)目內(nèi)容參見如下地址:
GitHub項(xiàng)目地址:
https://github.com/TheAlgorithms/Python
-
算法
+關(guān)注
關(guān)注
23文章
4626瀏覽量
93161 -
二叉樹
+關(guān)注
關(guān)注
0文章
74瀏覽量
12360 -
python
+關(guān)注
關(guān)注
56文章
4805瀏覽量
84928
原文標(biāo)題:算法實(shí)現(xiàn)沒思路?最全Python算法實(shí)現(xiàn)大禮包!(附學(xué)習(xí)資源)
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論