这个项目是一个综合性的资源库,旨在通过手写代码的方式深入探索和学习各种算法与数据结构。它不仅涵盖了从基本到高级的数据结构,如链表、树、图等,还包括排序、搜索、动态规划等核心算法的实现。本项目的目标是为计算机科学学生、爱好者以及正在准备技术面试的开发者提供一个清晰、易于理解的代码实例和解释。 与其他算法库不同的是,本项目注重于算法和数据结构的基础教育和理解,而不仅仅是作为一个实用的工具库。每个算法和数据结构都配有详细的注释和解释,以及它们在实际应用中的示例。这使得本项目成为一个理想的学习资源,帮助读者不仅仅是学会如何使用这些算法和数据结构,更重要的是理解它们的工作原理和适用场景。 无论你是算法的初学者还是希望复习和深化理解的经验开发者,这个项目都将是一个宝贵的资源。
本文档介绍如何从命令行构建 Algorithm 项目以及如何将 Algorithm 项目导入 IDE
这里以macOS为例,展示如何进行安装
brew install git
brew install openjdk@17
git clone https://github.com/nadav-cheung/algorithm.git
cd algorithm
mvn clean package
确保 JDK 17 在 IDE 中正确配置。
个人网站 Nadav's 算法之旅 该网站中针对每一种算法的前世今生都进行了详细的阐述,尽力保证非科班同学也能理解算法之美
- 基于JDK17+
- 从0开始手写构建常规的算法与数据结构
- 详细实现了二叉树、链表等基本数据结构。
- 提供了排序、搜索等常用算法的高效实现。
- 针对每一个算法,同时提供详细的文档说明。
structure.util/
- 包含所有数据结构的实现。algorithm/
- 包含各种算法的实现。
欢迎通过GitHub的Issue或Pull Request来提交反馈和贡献代码。
本项目是根据 Apache License 2.0 版发布的。
感谢所有对此项目作出贡献的人。
感谢Github为全世界所有用户提供的免费图床资源。
感谢Cloudflare为全世界所有用户提供的免费反向代理和Redirect Rules能力。
感谢jsDeliver项目大爱天尊为全世界所有用户免费提供的CDN代理能力。
感谢Chinajsdelivr项目在jsDelivr项目被中国防火墙屏蔽后,承接起了jsDeliver的愿景,在中国薪火传承。
- 其他
感谢全世界无私奉献的个人和组织。
是你们点燃了人类文明之火,衷心祝愿你们的未来如星辰大海般美好。
如有疑问或建议,请通过我的邮箱(nadav.cheung@gmail.com)联系我。