排序
快速排序
模板
归并排序
模板
二分
整数二分
实数二分
高精
- 高精度模板存数时都采用小端方式,整数的低位存在数组的低位(为了进位方便)
高精加
高精减
高精乘
高精除
前缀和和差分
- 差分是前缀和的逆运算
- 前缀和是用来快速求出数组中一段连续区间的和(O(1))
- 差分是用来快速求出对数组中一段连续区间同时加上一个数后的数组结果(O(1))
双指针
位运算
求x的二进制表示中的第k位
求x的二进制表示中最后一位1出现的位置(lowbit)
例:10010101002,返回1002
离散化
当有一个整数序列,这些整数的值域非常大(>109),但数字个数(n)较少,即分布较为稀疏。现需要用到这些整数作为数组的下标,无法开一个超级大的数组,只能将这些整数离散化,按其原来的相对大小映射为一串连续的值(≤n)。
整体思路是:排序→去重→映射(一般映射为数组下标+1(二分查找))
区间合并