我的寒假假期学习顺序

1. 基础算法与分治思想

排序进化论:你掌握了 O(n\^2)O(n \\log n) 的跨越。包括快速排序(基准划分)、归并排序(分治合并) 和结构体排序(多维数据处理)。

二分法:包括用于查找的二分搜索和用于最优化问题的二分答案(如 P2678 跳石头)。

数学优化:利用指数二进制拆分实现的快速幂,大幅提升幂运算效率。

2. 线性与树形数据结构

线性表:从基础的栈与队列 到支持双向操作的双向链表。

进阶线性:掌握了单调栈,用于 O(n) 解决"下一个更大元素"及积水建模问题。

树论基础:涵盖二叉树的先/中/后序遍历 以及处理多叉树的左孩子右兄弟转换法。

3. 搜索算法 (DFS & BFS)

DFS (深度优先):侧重于回溯与路径探索。包括迷宫寻路、联通块染色(P1162) 和最优性剪枝(P1135)。

BFS (广度优先):侧重于最短步数与层级扩展。涵盖了复杂的机器人状态搜索、多源 BFS 以及二分图判定。

4. 图论高级算法

并查集 (DSU):实现高效的集合合并与查询,采用了路径压缩优化。

最小生成树 (MST):

Kruskal:基于边权排序与并查集贪心。

Prim:基于点集扩展,类似 Dijkstra 逻辑。

最短路:

Dijkstra:配合**优先队列(堆)**优化的单源最短路。

Floyd:基于动态规划的多源全图最短路。

相关推荐
思麟呀12 分钟前
C++11并发编程:call_once一次性执行+atomic原子类型+CAS无锁编程+自旋锁
linux·开发语言·jvm·c++·windows
Lumbrologist31 分钟前
【C++】零基础入门 · 第 13 节:类与对象基础
java·c++·算法
humors22133 分钟前
学习方法的系统梳理与实践应用
学习·学习方法
码不停蹄的玄黓36 分钟前
Java 生产者-消费者模型详解
java·开发语言·python
爱讲故事的39 分钟前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
笨蛋不要掉眼泪43 分钟前
Java并发编程:Executors框架类深度解析
java·开发语言·并发
_童年的回忆_1 小时前
【php】在linux下PHP安装amqp扩展
linux·开发语言·php
AIMath~2 小时前
python中的uv命令揭秘
开发语言·python·uv
弹简特2 小时前
【零基础学Python】06-Python模块和包、异常处理、文件常用操作
开发语言·python
x***r1512 小时前
Postman-win64-7.2.2-Setup安装步骤详解(附API接口测试与参数配置教程)
开发语言·lua