Go 語言—資料結構和演算法專案推薦

roseduan發表於2021-07-16

Hello大家好,我是 roseduan,上一篇文章我為大家推薦了一些 Go 語言的入門練手專案,希望對你有所幫助。

今天分享的是一些資料結構和演算法的專案,在我自己學習 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

這個專案實現了一些常用的演算法和資料結構,比如動態規劃、貪心演算法、圖、樹、堆等等,程式碼比較簡潔清晰,值得學習。


這一期的分享就到這啦,歡迎關注我的公眾號【roseduan 寫字的地方】,獲取更多更有趣、更實用的 Go 語言內容哦!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章