# algorithm **Repository Path**: elina1017/algorithm ## Basic Information - **Project Name**: algorithm - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-26 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 算法与数据结构实现 本项目包含多种数据结构和算法的Java实现,适用于学习和实践算法与数据结构。 ## 目录结构 - `datastructure/` - 各种数据结构的实现 - `leetcode/` - LeetCode算法题解 - `sort/` - 排序算法实现 ## 数据结构 ### 循环数组 (CycleArray) 动态扩容的循环数组,支持在首尾添加/删除元素 ### 双向链表 (DoublyLinkedList) 支持在任意位置增删元素的双向链表 ### 动态数组 (DynamicArray) 自动扩容的数组结构,提供完整的列表操作 ### 哈希表实现 - 链式哈希 (ExampleChainingHashMap) - 线性探测哈希 (ExampleLinearProbingHashMap1 & 2) - 自定义哈希表 (MyChainingHashMap) - 有序哈希表 (MyLinkedHashMap) ### 优先队列 (MyPriorityQueue) 基于堆实现的优先队列,支持比较器 ### 图结构 - 加权有向图 (WeightedDigraph) - 邻接矩阵实现的加权有向图 (WeightedDigraphMatrix) ## LeetCode题解 涵盖多种类型的算法题目,包含但不限于: ### 链表操作 - 两数相加 - 删除重复元素 - 判断回文 - 反转链表 - 合并链表 - 找交点节点 ### 数组处理 - 最长公共前缀 - 旋转矩阵 - 螺旋遍历矩阵 - 移除元素 - 合并区间 - 滑动窗口算法 ### 高级算法 - 回溯算法 (BackTrack, CombinationSum) - BFS/DFS (OpenTheWheelLock, SlidingPuzzle) - 动态规划 (CoinChange) - 贪心算法 (CanJump, GreedyJump) ### 树结构 - 二叉树最大深度 - 二叉树直径 - 二叉树最小深度 ## 排序算法 包含多种经典排序算法实现: - 堆排序 (HeapSort, SimpleHeapSort) - 插入排序 (InsertionSort) - 希尔排序 (ShellSort) - 选择排序 (SelectionSort) - 基数排序 (RadixSortLSD) - 计数排序 (CountingSort) - 桶排序 (InsertToBucketingSort) - 缓冲排序 (BufferedSort) ## 使用方法 每个Java文件都包含main方法作为测试入口,可以直接运行查看效果。 ## 贡献指南 欢迎提交Issue和Pull Request,建议包含: 1. 完整的测试用例 2. 清晰的代码注释 3. 时间/空间复杂度分析 ## 许可证 本项目采用MIT License,详细信息请查看LICENSE文件。