前言
演算法為王。
想學好前端,先練好內功,內功不行,就算招式練的再花哨,終究成不了高手;只有內功深厚者,前端之路才會走得更遠。
強烈推薦 GitHub 上值得前端學習的資料結構與演算法專案,包含 gif 圖的演示過程與視訊講解。
GitHub 專案
資料結構與演算法
關於資料結構與演算法的 GitHub 專案,star 數由高到低排序。
- javascript-algorithms(51.3k) 該倉庫包含了多種基於 JavaScript 的演算法與資料結構,提供進一步閱讀的解釋和連結。 每種演算法和資料結構都有自己的 README,包含相關說明和連結,以便進一步閱讀 (還有 YouTube 視訊) 。
- Algorithm_Interview_Notes-Chinese(24.6k) 2018/2019/校招/春招/秋招/演算法/機器學習(Machine Learning)/深度學習(Deep Learning)/自然語言處理(NLP)/C/C++/Python/面試筆記
- algorithm-visualizer(23k) 演算法視覺化工具是一個互動式的線上平臺,可以從程式碼中視覺化演算法。
- swift-algorithm-club(20.8k) 演算法和資料結構迅速,有解釋 !
- algorithms(15.4k) Python中資料結構和演算法的最小示例。
- algo(8.3k) 資料結構和演算法必知必會的50個程式碼實現。
- awesome-algorithms(6.4k) 一份很棒的學習和/或練習演算法的地方的整理清單。
- algorithms 對Jeff的演算法書、筆記等進行錯誤跟蹤
- javascript-algorithms(5.4k) 此儲存庫包含不同著名電腦科學演算法的 javascript 實現。
- Learn-Algorithms(3.8k) 演算法學習筆記。
- AlgoXY(3.8k) 基本演算法和資料結構手冊。
- JS-Sorting-Algorithm(2.9k) 一本關於排序演算法的 GitBook 線上書籍 《十大經典排序演算法》,使用 JavaScript & Python & Go & Java 實現。
- JavaScript 更多 ...
- 其他語言,更多 ...
LeetCode
關於 LeetCode 的 GitHub 專案,star 數由高到低排序。
- LeetCodeAnimation(36k) 用動畫的形式呈現解LeetCode題目的思路。
- leetcode(13.6k) leetcode 題解,記錄自己的leetcode解題之路。
- leetcode(11.2k) leetcode 問題解決方案。
- leetcode(7.7k) LeetCode題解,151道題完整版。
- awesome-java-leetcode(6.2k) LeetCode演算法與Java解決方案(更新)。
- vscode-leetcode(4.1k) 在 VS Code 中練習 LeetCode。
- LintCode(3.4k) LintCode/LeetCode 的 Java 解決方法。
- algorithm-exercise(2.6k) 資料結構與演算法/leetcode/lintcode題解/
- 更多 ...
JavaScript 資料結構與演算法之美
JavaScript 資料結構與演算法之美系列文章,包含了 十大經典排序演算法 的思想、程式碼實現、一些例子、複雜度分析、動畫、還有演算法視覺化工具。
這應該是目前最精簡的 JavaScript 資料結構與演算法 的講解了吧。
- 1. JavaScript 資料結構與演算法之美 - 時間和空間複雜度
- 2. JavaScript 資料結構與演算法之美 - 線性表(陣列、佇列、棧、連結串列)
- 3. JavaScript 資料結構與演算法之美 - 實現一個前端路由,如何實現瀏覽器的前進與後退 ?
- 4. JavaScript 資料結構與演算法之美 - 棧記憶體與堆記憶體 、淺拷貝與深拷貝
- 5. JavaScript 資料結構與演算法之美 - 遞迴
- 6. JavaScript 資料結構與演算法之美 - 非線性表(樹、堆)
- 7. JavaScript 資料結構與演算法之美 - 氣泡排序、選擇排序、插入排序
- 8. JavaScript 資料結構與演算法之美 - 歸併排序、快速排序、希爾排序、堆排序
- 9. JavaScript 資料結構與演算法之美 - 計數排序、桶排序、基數排序
- 10. JavaScript 資料結構與演算法之美 - 十大經典排序彙總
- 11. JavaScript 資料結構與演算法之美 - 優秀程式設計師都應該學習的資料結構與演算法專案(GitHub 開源清單)
演算法視覺化工具
- 演算法視覺化工具 algorithm-visualizer 演算法視覺化工具 algorithm-visualizer 是一個互動式的線上平臺,可以從程式碼中視覺化演算法,還可以看到程式碼執行的過程。
效果如下圖。
旨在通過互動式視覺化的執行來揭示演算法背後的機制。
-
演算法視覺化來源 visualgo.net/en 效果如下圖。
變數和操作的視覺化表示增強了控制流和實際原始碼。您可以快速前進和後退執行,以密切觀察演算法的工作方式。
最後
覺得有用 ?喜歡就收藏,順便點個贊吧,你的支援是我最大的鼓勵!
筆者的技術部落格首發地址如下:github.com/biaochenxuy…