# Algorithm-learning **Repository Path**: litinyana/algorithmlearning ## Basic Information - **Project Name**: Algorithm-learning - **Description**: "算法是编程的灵魂,思维的艺术"。这是一个专注于算法与数据结构学习的代码仓库,记录了我从基础到进阶的完整学习历程。我相信,无论起点如何,只要保持热情和坚持,每个人都能掌握算法这门"编程数学"。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-02 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp ## README # 算法学习笔记 ## 📚 项目简介 这是我在算法学习路上的代码笔记和练习。算法是计算机科学的基石,虽然学习过程充满挑战,但像数学一样纯粹而美妙,这正是我喜欢的! 算法是编程的核心基石,也是解决问题的底层逻辑。曾因疏于系统学习倍感遗憾,但庆幸的是,现在重新启程仍为时不晚。尽管算法学习过程中充满挑战,但其如同数学一般纯粹的逻辑美感,让我深深着迷。以此仓库记录我的算法学习之路,见证每一次思考、每一次突破。 ## 仓库信息 ✅ 算法学习代码仓库:[地址](https://gitee.com/litinyana/algorithmlearning) ## 学习目标 1. 夯实算法基础,掌握常见数据结构(数组、链表、栈、队列、树、图等)的原理与操作; 2. 吃透经典算法思想(贪心、动态规划、分治、回溯、BFS/DFS 等),并能灵活应用; 3. 提升问题分析与抽象能力,独立解决中等及以上难度的算法题; 4. 养成规范编码、高效调试的习惯,兼顾代码可读性与时间/空间复杂度优化。 ## 🎯 学习目标 - 掌握常见算法思想和数据结构 - 提高问题分析和解决能力 - 为技术面试和实际开发打下坚实基础 - 享受思考和解谜的过程 ## 📂 代码结构 ``` algorithm-learning/ ``` ## 🔧 语言选择策略 - **主要使用 C 语言**:追求性能和底层理解 - **复杂情况使用 C++**:利用 STL 等高级特性 - **文件后缀区分**: - `.c` - C 语言实现 - `.cpp` - C++实现 ## 💡 学习心得 - **"后悔没有好好学,现在还不晚!"** - 学习永远不会太晚 - **"有点难,但是很纯粹"** - 这正是算法的魅力所在 - **每天进步一点点** - 坚持比天赋更重要 > 推荐学习教程:B 站王道考研数据结构(虽然是考研的,但是讲的真的很好,能听懂,内容也够硬核) ## 🚀 如何使用 推荐在线编辑器(我做的~): [OnlineSandboxclia](http://xiran.tech/cliya/) 推荐学习路径: 更目录下的 链表和顺序表结构体.c->基础数据结构->基础算法实现 1. 按目录/文件名查找特定算法 2. 每个算法文件包含: - 算法原理说明 - 代码实现 - 测试用例 - 时间复杂度分析 ## 备注 - 仓库中代码按“数据结构/算法思想”分目录存放,每个文件包含题目描述、解题思路、代码实现及复杂度分析; - 欢迎交流与指正,仓库支持提 Issue/PR 共同探讨解法优化。 ## 🤝 贡献与交流 欢迎提出建议、指出错误或分享更好的解法! 让我们一起在算法的道路上成长。 # 贡献指南 感谢你对本项目的兴趣!以下是参与贡献的规范流程。 ## 开发环境 - **C 编译器**: GCC 9+ 或 Clang 10+ - **代码风格**: 遵循项目现有 `.clang-format` 配置 ## 提交 Issue 报告问题前请确认: 1. 搜索现有 Issues,避免重复 2. 使用 Issue 模板(Bug 报告/功能请求) 3. 提供最小复现步骤和环境信息 ## 提交代码(Pull Request) ### 1. Fork & 分支命名 ```bash # 从 main 分支创建功能分支 git checkout -b feat/add-file-parser ``` ### 2. Commit 规范 必须遵循 [Conventional Commits](https://www.conventionalcommits.org/): **bash**复制 ```bash # 正确示例 git commit -m "feat(file): 实现二进制文件读取" # 带 body 的详细提交 git commit -m "fix(db): 修复连接超时问题" -m "在慢网络环境下,MySQL 连接默认 30s 超时过短,调整为 300s" ``` ## 代码审查标准 - 逻辑正确性 > 性能 > 代码风格 - 变量命名清晰,避免单字母(循环除外) - 内存操作必须有边界检查 - 错误处理不能静默失败 ## 发布规范(维护者) - `fix` 类型提交 → Patch 版本(1.0.x) - `feat` 类型提交 → Minor 版本(1.x.0) - `BREAKING CHANGE` → Major 版本(x.0.0) ``` # 1. 确保本地 main 最新 git checkout main git pull origin main # 2. 创建功能分支(命名见之前的规范) git checkout -b feat/add-buffer-pool # 3. 开发,多次提交 git add . git commit -m "feat(buffer): 实现 LRU 淘汰策略" git commit -m "test(buffer): 添加边界条件测试" # 4. 推送分支到远程(Fork 或原仓库) git push -u origin feat/add-buffer-pool # 5. 在 GitHub/GitLab 创建 Pull Request # - 标题:feat(buffer): 实现 LRU 淘汰策略 # - 描述:关联 Issue,说明改动点 # 6. Code Review 后合并 # 维护者会实现合并 ``` ## 联系方式 - 技术讨论:开 Issue 并标签 `discussion` - 紧急问题:邮件联系 768090799@qq.com --- **学习格言**: ** 胸有惊雷而面如平湖者,可拜上将军!** 算法之路,道阻且长,行则将至。每一次思考,都是思维的锻炼;每一次 AC,都是成长的见证。 **开始时间**:现在就是最好的开始时间!✨ ## 备注 - 仓库中代码按“数据结构/算法思想”分目录存放,每个文件包含题目描述、解题思路、代码实现及复杂度分析; - 欢迎交流与指正,仓库支持提 Issue/PR 共同探讨解法优化。