算法模板和刷题路线

一、路线(暂定)

基础题(当前)见“一些基础题”

STL、位运算

常用库函数

二、基础算法

枚举、模拟

递归、分治

排序

快排

  1.  确定分界点 :首、尾、中间
  2. 调整区间,使左边的小于分界点,右边的大于分界点
  3. 递归处理左右两段
void quick_sort(int q[], int l, int r) {
	//结束索引大于起始索引
	if (l >= r)return;
	//中间值可选q[l],q[r],q[(r+l)/2)]
	//起始指针
	int x = q[l], i = l - 1, j = r + 1;
	while (i < j) {
		do i++; while (q[i] < x);//从左到右,直到找到一个大于x的数
		do j--; while (q[j] > x);//从右到左,直到找到一个小于x的数
		//此时q[i]>x>q[j],如果q[i]在x左边,交换
		if (i < j)swap(q[i], q[j]);
	}
	//此时i==j ,递归处理x的左右两段
	quick_sort(q, l, i - 1);
	quick_sort(q, j+1, r);
}

归并

二分

高精度

前缀和差分

双指针算法

位运算

离散化

区间合并

三、数据结构

链表与邻接表:树与图的存储

栈与队列:单调队列、单调栈

kmp

Tire

并查集

Hash

四、搜索与图论

质数


约数


欧拉函数


快速幂


扩展欧几里得算法


中国剩余定理


高斯消元


组合计数


容斥原理


简单博弈论

五、动态规划

背包问题


线性DP


区间DP


计数类DP


数位统计DP


状态压缩DP


树形DP


记忆化搜索

六、贪心

七、时空复杂度分析


 

  • 16
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值