ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

10分钟上手AlgorithmsAndDataStructuresInAction:安装、跑通测试、玩转三语言项目结构的完整教程

10分钟上手AlgorithmsAndDataStructuresInAction:安装、跑通测试、玩转三语言项目结构的完整教程 10分钟上手AlgorithmsAndDataStructuresInAction安装、跑通测试、玩转三语言项目结构的完整教程【免费下载链接】AlgorithmsAndDataStructuresInActionAdvanced Data Structures Implementation项目地址: https://gitcode.com/gh_mirrors/al/AlgorithmsAndDataStructuresInActionAlgorithmsAndDataStructuresInActionAdvanced Data Structures Implementation是 Manning 书籍《Advanced Algorithms and Data Structures》的官方配套开源项目用Java、JavaScript、Python 三语言实现了高级数据结构与算法的完整源码覆盖 D 叉堆、Huffman 压缩、Treap、Bloom Filter、Trie、K-d Tree、K-means、DBSCAN、OPTICS 等 10 多个核心数据结构。每个实现都附带可运行的单元测试是学习高级数据结构算法难得的书 代码 测试三合一教程仓库。本文带你 10 分钟内完成克隆仓库 → 看懂三语言目录结构 → 分别跑通 Java / JavaScript / Python 的测试 → 按图索骥阅读核心实现。 一键克隆项目安装环境只需一条命令项目没有复杂的构建依赖克隆下来即可运行。推荐克隆地址git clone https://gitcode.com/gh_mirrors/al/AlgorithmsAndDataStructuresInAction环境要求任选其一即可上手全部装上也只要几分钟语言版本要求用途JavaJDK 8堆、Treap、Trie、图、Huffman 源码与测试Node.js12建议 14ES Module 支持更好堆、Bloom Filter、Trie、K-d Tree 等源码与测试Python3.7D 叉堆、Huffman、K-means、DBSCAN、OPTICS️ 项目结构速览1 分钟看懂三语言目录布局仓库顶层非常干净只有三个语言目录 一份总纲 README.mdAlgorithmsAndDataStructuresInAction/ ├── Java/ # Java 实现src源码 testsJUnit 测试 ├── JavaScript/ # JavaScript 实现src源码 testmocha/chai 测试 ├── Python/ # Python 实现mlarocca/datastructures源码 mlarocca/testsunittest └── readme/ # 书中全部配图JPG/PNG☕ Java 目录经典 src tests 双模块源码入口Java/src/org/mlarocca/按容器类型分包containers/priorityqueue/heap/—— D 叉堆containers/treap/—— Treap树堆containers/strings/trie/、containers/strings/tst/—— 字典树与三元搜索树graph/—— 图含线程安全版本ThreadsafeGraph.javahuffman/—— Huffman 压缩Huffman.java测试与源码一一对应如Java/tests/org/mlarocca/containers/priorityqueue/heap/HeapTest.java JavaScript 目录按数据结构分文件夹每个数据结构一个独立文件夹源码与测试平行对应JavaScript/src/dway_heap/—— D 叉堆dway_heap.js约 570 行含完整 JSDoc 注释JavaScript/src/bloom_filter/—— 布隆过滤器JavaScript/src/trie/—— Trie 与前缀压缩的 Radix Treetrie.js、radix_tree.jsJavaScript/src/kd_tree/、JavaScript/src/ss_tree/—— 空间索引树JavaScript/src/strings/—— Needleman-Wunsch 序列对齐算法JavaScript/src/common/—— 共享工具数组、排序、哈希等 Python 目录标准包结构 Jupyter 笔记本源码包Python/mlarocca/datastructures/heap/dway_heap.py—— D 叉堆huffman/huffman.py—— 基于 D 叉堆实现 Huffman 编码huffman.py第 3 行直接import DWayHeap可看出依赖关系clustering/——kmeans.py、dbscan.py、optics.py三大聚类算法测试Python/mlarocca/tests/标准unittest风格演示Python/mlarocca/notebooks/提供 k_means、dbscan、optics 等Jupyter 笔记本打开即可交互式运行 跑通测试三种语言的最快验证方法JavaScript 测试npm install 后一条命令搞定cd JavaScript npm install # 运行单个测试文件test 脚本已内置 ES Module 参数 npm test test/trie/test_trie.js # 查看 package.json 中的测试脚本定义 cat package.json测试基于mocha chai should三大断言库。以 JavaScript/test/trie/test_trie.js 为例它逐条验证了 Trie 的put / get / delete / contains / keysWithPrefix等全部 API全部通过后你会看到 mocha 熟悉的绿色passing列表。Python 测试内置 unittest零依赖直接跑cd Python # 运行 D 叉堆测试 python -m unittest mlarocca.tests.dway_heap_tests -v # 或一次性发现并运行全部测试 python -m unittest discover -s mlarocca/tests -t .dway_heap_tests.py 会遍历分叉因子 2~6 验证堆的合法性是确认环境无误的最快方式。Java 测试javac 直接编译运行Java 端未附带 Maven/Gradle 工程文件测试依赖 JUnit 4。将 junit 与 hamcrest 的 jar 加入 classpath 后# 编译全部源码与测试 javac -cp junit.jar:hamcrest-core.jar -d out $(find Java/src Java/tests -name *.java) # 运行某个测试类 java -cp out:junit.jar:hamcrest-core.jar org.junit.runner.JUnitCore org.mlarocca.huffman.HuffmanTest 不想折腾 classpath推荐用 IntelliJ IDEA 直接打开Java/目录并添加 JUnit 4 依赖右键测试类即可运行。 跟着图片读代码核心数据结构导读跑通测试后建议按下面的顺序配合readme/目录中的原书插图阅读源码数据结构首读文件配套插图一句话亮点D 叉堆JavaScript/src/dway_heap/dway_heap.jsd-way_heap.png分叉因子可调批量删除时比二叉堆更快Huffman 压缩Python/mlarocca/datastructures/huffman/huffman.pyreadme/huffman.jpg经典贪心算法直接复用 D 叉堆Treap 树堆Java/src/org/mlarocca/containers/treap/RandomizedTreap.javatreap.jpg随机化自平衡 BSTinsert/remove/search 全平均 O(log n)Trie / TSTJava/src/org/mlarocca/containers/strings/trie/Trie.javatst.png内置读写锁是线程安全的字符串容器K-means / DBSCAN / OPTICSPython/mlarocca/datastructures/clustering/k-means.jpg、db_scan_steps.jpg三种聚类思路对照学习配 Jupyter 演示✅ 10 分钟上手路线图总结第 1 分钟git clone克隆仓库确认 Java/Node/Python 三套环境第 3 分钟对照上文目录速览在 IDE 中打开感兴趣的语言目录第 6 分钟按上文命令跑通至少一个语言的测试推荐从 Python 或 JavaScript 开始零配置;第 10 分钟打开 README.md 总纲 readme/插图选定第一个想深入的数据结构推荐 D 叉堆开始源码精读。 小提示Python 的notebooks/目录里还有 kmeans、Huffman 的性能剖析笔记本如kmeans_profiling.ipynb、treaps_profiling.ipynb适合跑通测试后进一步观察不同参数下的算法表现。祝你在三语言对照中把高级数据结构与算法学得又快又扎实【免费下载链接】AlgorithmsAndDataStructuresInActionAdvanced Data Structures Implementation项目地址: https://gitcode.com/gh_mirrors/al/AlgorithmsAndDataStructuresInAction创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表