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