The way of algorithm learning.

这是一篇摘录的文章,不是原创

目录

1、基础必会

2、重点考察

3、不太会考

4、考也不会(大佬除外)


基础必会 常考的基础算法和知识点

暴力算法

1、简单模拟
2、简单递推
3、线性枚举

基础排序

1、冒泡排序
2、选择排序
3、插入排序
4、计数排序
5、接口调用(sort函数)
6、比较函数cmp()
7、结构体排序
*注:这几个要会手写,不是说考试会考而是这几个是最最最基础的,如果这么基础的你都懒得学,那你算法还不如不学。

基础数据结构

1、顺序表(数组)
2、单链表
3、双链表
4、栈
5、队列
6、二叉树

基础搜索

基本搜索算法

深度优先算法dfs

求解所有解,n比较小,比如n=10,n=16,n大的话贪心或动态规划

广度优先算法bfs

最短方案



基础动态规划

动态规划的基础应用

线性DP
记忆化搜索
最大连续子序列(最大子段和)
最长单调子序列(LIS(longest increasing sequence))
最长公共子序列(LCS(longest common sequence))
二维DP、多维DP
注:低维解决不了升维 注:动态规划自己想有难度,建议查阅资料,学知识不丢人

初高中基础数学

加减乘除
取模
整除
取整(floor ceil)
解方程 代数方法或数值方法,如二分法、牛顿迭代法。
指数
对数 三角函数

重点考察 国赛重点

国赛常考的进阶算法与知识点

基础优化算法

1、贪心

贪心算法是在每一部选择中都采取当先状态下最优的选择,希望通过局部最优达到全局最优。贪心算法的关键是证明贪心策略的正确性,并非所有问题都适合贪心算法。常见的应用有活动选择问题,哈夫曼编码等。


2、哈希

哈希算法时将元素储存到一个特殊的容器中,这个容器可以快速插入和查找、一般时间复杂度为O(1),经典的 梦开始的地方——两位数之和,就可以采用哈希表快速进行统计。


3、前缀和+差分

前缀和是指一个数组中,从第一个元素到第i个元素的和。差分是前缀和的逆运算,用于快速查询区间元素的值。前缀和和差分可以见区间查询的时间复杂度从O(n)降低到O(1)。


4、双指针

双指针是指用两个指针在数组或链表上移动,已解决一些特定的问题。可以分为同相双指针和相向双指针,常用于查找子数组、判断链表是否有环等。双指针可以减低时间复杂度,提高算法效率。


5、滑动窗口

滑动窗口是一种特殊的双指针技术,通过维护一个固定大小的窗口在数组或字符串上移动。可以用于解决一些连续子数组或子字符串的问题,如最大子数组和。滑动窗口的关键是确定窗口大小和移动规则。


6、二分

二分查找是在有序数组中查找某个元素的高效算法,时间复杂度为O(lgn)。二分查找的关键是确定查找区间和中间位置,不断缩小查找范围,二分查找可以应用于很多问题,如查找最小值、最大值等。



进阶排序

更高效的排序算法

1、快速排序
2、归并排序

进阶数据结构

1、哈希表
2、字符串hash
3、堆
4、并查集
5、树状数组
6、ST表
7、线段树
8、字典树


进阶动态规划

复杂的动态规划问题

1、01背包
2、完全背包
3、多重背包
4、分组背包
5、书上分组背包
6、基础树形DP
7、树的重心
8、区间DP
9、数位DP
10、状压DP


图论算法

最短路

(1) Dijkstra
(2) Bellman-Ford
(3) Floyed (4) SPFA (5) Dijkstra + Heap

最小生成树

(1) prim
(2) kruskal

最近公共祖先

(1) 深度迭代
(2) RMQ找最小值找公共祖先


数学

初等数论

整除、素数、素数筛选、最大公约数、最小公倍数、因字数、因子和、因式分解、二分快速幂、线性同余、逆元、欧拉函数、欧拉定理、中国剩余定理、威尔逊定理、卢卡斯定理、证书分块 等等

容斥原理

容斥原理是用于计算多个集合的并集的元素个数的原理。可以通过枚举集合的组合来计算并寄的元素个数。容斥原理在组合数学和算法中有广泛的应用。

二项式定理

通过二项式定理来展开多项式,在组合数学和算法中有重要应用。

不太会考的(但OI和ACM得学啊)

不太常见的排序算法

1、桶排序
1、堆排序
1、基数排序


搜索

特殊的搜索算法

1、搜索剪枝
2、双向广搜
3、IDA*
4、启发式搜索


图论算法

1、欧拉回环
2、拓扑排序
3、二分匹配
4、强连通分量
5、双连通分量


数学

高斯消元
Pollard's rho

我要成为大佬!!!

复杂算法与数据结构

1、DP斜率优化
2、复杂计算机和
3、概率题
4、博弈
5、AC自动机
6、扩展kmp
7、后缀数组
8、后缀自动机
9、回文自动机
10、最小割最大流
11、最小费用最大流
12、一般图匹配
13、生成函数(步豪!是H(λ))
14、莫比乌斯反演
15、快速傅里叶变换
16、二次互反律

The way of algorithm learning.
https://never87.ddns-ip.net/2025/05/09/algorithm/
Author
Never87
Posted on
May 9, 2025
Licensed under