# Algorithm **Repository Path**: goal123/algorithm ## Basic Information - **Project Name**: Algorithm - **Description**: 这是一个包含多种数据结构和算法的项目,适用于学习和实践。该项目涵盖了从基础排序到复杂数据结构操作的各种实现。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/goal123 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-12 - **Last Updated**: 2025-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: 算法, LeetCode ## README # 算法项目 这是一个包含多种数据结构和算法的项目,适用于学习和实践。该项目涵盖了从基础排序到复杂数据结构操作的各种实现。 ## 主要模块 ### 数据结构 (`000-struct`) 包含多种常用数据结构的实现: - `AllOne`: 能够在O(1)时间内完成增减操作,并获取最大/最小键值的数据结构。 - `BitSet`: 位集合数据结构的实现。 - `FreqStack`: 能够按频率弹出元素的栈结构。 - `LFUCache`: 最不经常使用缓存淘汰策略的实现。 - `MedianFinder`: 支持动态获取中位数的数据结构。 ### 排序 (`001-sort`) 包含以下排序算法: - `MergeSort`: 归并排序的实现。 - `QuickSort`: 快速排序的实现。 ### 查找 (`002-search`) - `No_001_Binary`: 二分查找算法的实现。 ### 合并 (`003-merge`) 包含基于归并排序思想的两个问题解决方案: - `No_01_SmallSum`: 计算数组的小和。 - `No_02_SwapPair`: 计算数组中交换对的数量。 ### 数学 (`004-math`) 包含数学相关算法: - `CommonDivisor`: 最大公约数和最小公倍数的计算。 - `CongruenceTheorem`: 与回文数相关的数学问题求解。 ### 树 (`005-tree`) 包含前缀树的两种实现方式: - `TrieByArray`: 使用数组实现前缀树。 - `TrieByClass`: 使用类结构实现前缀树。 ### LeetCode (`leetcode`) 包含一些LeetCode题目的解决方案: - `_0130_SurroundedRegions`: 解决被围绕的区域问题。 - `_0827_MakingLargeIsland`: 合并岛屿以获得最大岛屿面积。 - `_1109_FLightReserve`: 航班预订管理系统。 ## 使用方法 ### 编译与运行 本项目使用Java编写,你可以使用任何支持Java的IDE(如IntelliJ IDEA或Eclipse)打开并运行项目中的类。每个类通常都包含`main`方法,可以直接运行以测试功能。 ### 示例 以`MergeSort`为例: 1. 打开`MergeSort.java`文件。 2. 运行`main`方法。 3. 程序将对一个整数数组进行排序并输出结果。 ## 贡献指南 欢迎为本项目贡献代码。你可以提交新的算法实现、优化现有代码或修复已知问题。请确保提交的代码符合Java编码规范,并提供必要的注释和测试用例。 ## 许可证 本项目采用MIT许可证。详情请参阅项目根目录下的`LICENSE`文件。