# 算法 **Repository Path**: TicsmycL/algorithm_learning ## Basic Information - **Project Name**: 算法 - **Description**: 常见算法、常用模板整理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-01-19 - **Last Updated**: 2025-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 排序 - 冒泡 - 插入 - 选择 - 归并 - 数组分割、荷兰国旗问题 - 小和问题和逆序对 - 堆排 - 大根堆、小根堆 - 数据流的中位数 - topK问题的堆解法 - 快排 ## 数据结构 - 二叉树 - 三种遍历的递归与非递归 - 寻找前驱和后继 - 判断二叉树类型: 完全二叉树、平衡二叉树、二叉搜索树 - 二叉平衡树的节点个数 - 哈弗曼树:分隔金条的最小开销 - 前缀树 - 随机池RandomPool - 队列、栈 - 用数组实现队列、栈 - 队列、栈的互相实现 - 可以返回栈中最小元素的栈 - 矩阵 - 各种打印方式: 之字形打印、转圈打印 - 矩阵旋转 - 在排好序的矩阵中找数 - 岛问题 - 并查集 - LRU - 单调栈 - 滑动窗口 ## 字符串 - 字符串子序列和全排列 - KMP - 最长回文子串: 暴力做法和Manacher做法 - 字符串转数字 ## 思想 - 二分 - 贪心 - 项目的最大收益 - 会议安排问题 - 多线程 - 生产者消费者模型 - 两个线程轮流打印 - 手写自旋锁 - 死锁 # 数学问题 - 素数筛 - 辗转相除 - 组合数(逆元+快速幂、递归、dp) - 平方根( 二分、牛顿迭代) - 快速幂