这一个 GitHub项目地址
本项目包含了我在自学算法过程中整理的笔记。这些笔记记录了我对常见算法和数据结构的理解、思考过程以及相关的学习资源。目的是帮助自己总结学习成果,同时为他人提供参考和启发。
学习内容
本项目将覆盖如下算法和数据结构:
- 基本数据结构:数组、链表、栈、队列、哈希表、树、图
- 排序与查找算法:快速排序、归并排序、二分查找、线性查找等
- 动态规划:背包问题、最短路径问题、最长公共子序列等
- 图算法:深度优先搜索、广度优先搜索、最小生成树、最短路径等
- 其他算法:贪心算法、回溯算法、分治算法等
项目目标
- 整理学习笔记:将学习过程中的关键点、算法实现和常见问题进行总结。
- 分享学习经验:通过本项目分享自学过程中的心得体会,帮助更多对算法感兴趣的学习者。
- 持续更新:根据自学的进度和掌握的新知识,不断扩充和优化笔记内容。
项目正在推进
目前项目正在进行中,已完成的内容包括常见数据结构和部分经典算法的学习笔记。接下来我会继续增加新的算法和数据结构的内容,并进行优化和完善。
配套网站开发
为本项目开发的配套网站正在进行中,未来将通过网站发布更为直观的学习资料,并结合在线编程和算法演示,提供更加互动的学习体验。
如何使用
您可以通过以下步骤使用本项目:
- 浏览笔记:直接查看项目中的笔记文件,获取对算法的理解和实现。
- 贡献代码:如果您对项目中的某个算法或内容有补充,欢迎通过提交 Pull Request 进行贡献。
- 参与讨论:如果您有问题或想法,可以通过 Issues 提出,我们一起讨论、解决。
关于我
我的身份
我是一名初二的学生,虽然算法学习的起步较晚,但我对编程和算法充满了兴趣,正在努力通过自学不断提高自己的算法水平。
为什么停止学习语言
在我的学习过程中,我曾一度对编程语言产生浓厚的兴趣,并开始学习。然而,我的老师建议我先专注于学习算法,再进一步学习编程语言。他认为,掌握算法的核心思想和思维方式将帮助我更好地理解编程语言的本质,并在实际编程中更加得心应手。因此,我决定暂时放下语言学习,集中精力在算法的掌握上。
通过学习算法,我能够培养更强的逻辑思维和问题解决能力,这对日后学习任何编程语言都会大有裨益。此决定是基于一个更为长远的学习规划,旨在打下更加坚实的编程基础。
我的目标
我的目标是获得信息奥赛省赛一等奖。信息奥赛(National Olympiad in Informatics,简称NOI)是我向往的编程竞赛,它不仅能锻炼我的算法思维和编程能力,还能帮助我更深入地理解计算机科学的核心概念。通过参加省赛,并争取取得一等奖,我希望能够为将来进入更高水平的编程比赛奠定基础,同时为自己的编程之路增添亮点。
为达成这一目标,我正在通过不断学习算法和数据结构,加强编程能力,并积极参与各种实践项目,提升自己的综合素质。我相信,只有通过不懈的努力和挑战,才能在这个目标上取得成功。
参考资料(学习资料)
在本项目中,我参考了以下书籍和资料来帮助我学习算法和编程:
-
《hello 算法》
该项目提供了大量的算法学习资料和代码示例,适合初学者。通过这个资源,我能够从零基础开始,逐步掌握常见的算法和数据结构。
项目链接:hello 算法 -
CS自学指南
这是一个专为自学计算机科学的学生提供的指南,内容涉及计算机科学的各个领域,帮助我规划学习路径。
访问链接:CS自学指南 -
HackWay技术学习路线
这个网站提供了从入门到进阶的技术学习路线,帮助我更好地选择合适的学习路径,并系统性地提升技术能力。
访问链接:HackWay技术学习路线 -
《算法基础:打开算法之门》
这本书为我提供了算法的基础知识,尤其适合算法学习的入门阶段,帮助我从简单的例子中理解复杂的算法概念。 -
《算法导论》
这是一本经典的算法教材,涵盖了算法设计和分析的核心内容。它深入探讨了数据结构、排序、图算法等基础和高级算法,是我进一步学习和实践的关键参考书。 -
《数据结构、算法与应用:C++语言描述》
这本书通过C++语言描述数据结构和算法,详细讲解了各种数据结构和算法的实现方式,并结合实际应用,帮助我更好地掌握这些知识。
许可证
此项目采用 CC BY-NC-SA 4.0 许可证开源。您可以在非商业用途下使用和分享本项目的内容,但需要注明出处,并且分享的内容必须采用相同的许可协议。
致谢
感谢所有为算法和编程领域做出贡献的前人,正是有了他们的知识和经验,才能使我们这些自学者更容易获得进步和启发。