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