Go 語言—數(shù)據(jù)結(jié)構(gòu)和算法項目
本文轉(zhuǎn)載自微信公眾號「roseduan寫字的地方」,作者roseduan。轉(zhuǎn)載本文請聯(lián)系roseduan寫字的地方公眾號。
今天分享的是一些數(shù)據(jù)結(jié)構(gòu)和算法的項目,在我自己學(xué)習(xí) Go 語言的時候,在掌握基礎(chǔ)的語法知識之后,會針對性的刷一些 leetcode 題目,借此來鞏固自己的語法知識,然后也能夠保持解算法題目的感覺,可謂是一舉兩得吧。
所以從下面這些優(yōu)秀的項目中,一定能夠找適合你的項目哦!
1、GoDS
Github 地址:https://github.com/emirpasic/gods
Star 數(shù)量:9.9k
Go Data Structures,實現(xiàn)了常見的數(shù)據(jù)結(jié)構(gòu),可直接引入到實際的項目中使用,包含鏈表、棧、哈希表、樹等等,命名風(fēng)格和 Java 中的類名比較相似(估計作者受 Java 的影響頗深哈哈),比如有:
- ArrayList
- ArrayStack
- HashSet
- TreeSet
- LinkedHashSet
- RedBlackTree
當(dāng)然你也可以用來學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),看看大牛的代碼是怎么寫的。
2、go-datastructures
Github 地址:https://github.com/Workiva/go-datastructures
Star 數(shù)量:6k
和上面的項目類似,這也是一個用 Go 語言實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的一個項目,只不過它支持的數(shù)據(jù)結(jié)構(gòu)更加多樣化,除了一些基礎(chǔ)的,還有 BitArray、BTree、斐波那契堆、圖、AVL 樹、前綴樹等等一些高級數(shù)據(jù)結(jié)構(gòu)。
如果你想挑戰(zhàn)一下比較有難度的數(shù)據(jù)結(jié)構(gòu),那么在這個項目應(yīng)該能找到你可以學(xué)習(xí)或者借鑒的代碼。
3、TheAlgorithms/Go
Github 地址:https://github.com/TheAlgorithms/Go
Star 數(shù)量:5.3k
這是 TheAlgorithms 系列的 Go 語言實現(xiàn),我們知道 TheAlgorithms 系列有很多語言的版本,比如 Python、Java、Go、C++、JavaScript 等等。
這個項目比較適合用來學(xué)習(xí),有很多基礎(chǔ)的算法的示例,比如數(shù)學(xué)、二分查找、排序、字符串匹配,還有一些練手的算法題目。
4、algorithm-pattern
Github 地址:https://github.com/greyireland/algorithm-pattern
Star 數(shù)量:11.5k
這個項目主要是介紹了一些通用的刷題模板,以及一些常見問題,如到底要刷多少題,按什么順序來刷題,如何提高刷題效率等。
作者總結(jié)的模板非常全面,講解也很細致。
比較適合用來臨時刷算法,應(yīng)對面試,所以即便不是學(xué)習(xí) Go 語言的同學(xué),也能夠從中獲取到一些刷題的經(jīng)驗等。
項目中還有一些書籍推薦,文檔也非常的全面。
5、LeetCode-Go
Github 地址:https://github.com/halfrost/LeetCode-Go
Star 數(shù)量:17.4k
顧名思義,這是一個使用 Go 語言實現(xiàn) Leetcode 題目的項目,比較偏向于解題實戰(zhàn)。
目前項目已經(jīng)收錄了 600+ leetcode 題目,并且針對每一道題目,都有詳細的解題思路,并且有完整的代碼實現(xiàn)。
項目還有配套的電子書,文檔,可以說是非常 nice 了!
6、hoanhan101/algo
Github 地址:https://github.com/hoanhan101/algo
Star 數(shù)量:3k
這個項目是作者總結(jié)的,在面試過程當(dāng)中最容易遇到的一些算法面試題目,配有詳細的代碼實現(xiàn),只不過是全英文的,英文比較好的同學(xué)可以嘗試學(xué)習(xí)一下。
7、shady831213/algorithms
Github 地址:https://github.com/shady831213/algorithms
Star 數(shù)量:504
這個項目實現(xiàn)了一些常用的算法和數(shù)據(jù)結(jié)構(gòu),比如動態(tài)規(guī)劃、貪心算法、圖、樹、堆等等,代碼比較簡潔清晰,值得學(xué)習(xí)。