CSAPP_lab DataLab datalab datalab 准备 文件下载 要求 测试 操作符测试 正确性测试 函数编写 bitXor tmin isTmax addOddBits negate isAsciiDigit conditional isLessOrEqual logicalNeg howManyBits floatScale2 floatFlo CSAPP_lab #CSAPP_lab
数论 数论 数论 筛质数 朴素筛法 埃氏筛法 线性筛 筛质数 朴素筛法 从 \(2\) 开始遍历到 \(n\) ,将每个数的倍数删去,留下了的数就是质数 解释: 设 \(p\) 为质数,说明在枚举 \(2\) 到 \(p-1\) 的过程中 \(p\) 都没有被删去,即 \(2\) 到 \(p-1\) 中没有一个数是 \(p\) 的因数,因此 \(p\) 是质 Algorithm Archiv #Algorithm Archiv
数据结构 数据结构 数据结构 线段树 线段树的引入 线段树的定义 数据结构定义与实现 单调队列 模板 KMP 模板 变式 KMP 与最小循环节的关系 Trie 树 通用模板 多叉树实现 二维数组实现(LeetCode) 二维数组(时间优化) 变式 Trie 树在求解异或的应用 异或运算的前缀和优化以及动态维护 T Algorithm Archiv #Algorithm Archiv
基础算法 基础算法 基础算法 双指针及其使用条件 能够使用双指针 不能使用双指针 哈希表记录已出现元素的几种模板 何时用 DFS 与 BFS 二分边界条件的特殊判断 缺失的数(重点) 前缀和的两种写法 以元素序号为基准 以元素下标为基准 单调栈 + 前缀和的前缀和 求奇偶前缀和 双指针及其使用条件 双指针使用的条件为两个指针都必须具有单调 Algorithm Archiv #Algorithm Archiv
图论 图论 图论 Flood Fill 基础: BFS 写法 DFS 写法 变式 BFS 拓扑排序 基础 变式 有向无环图的构造 Dijkstra 基础 朴素 Dijkstra 堆优化 Dijkstra 变式 将其余点映射到虚拟节点 构建虚拟节点 | 只更新部分点到起点的距离 SPFA 基础 Algorithm Archiv #Algorithm Archiv
LeetCode LeetCode LeetCode 索引 数学相关 二进制小数的表示 位运算 排列相关 求全局 & 局部倒置对数量 贪心 树状数组 基于排列性质 数组 删除部分元素使数组有序 双指针 + 二分 双指针 快速求出数组元素到某个值的距离 前缀和 + 二分 考虑距离和的增量 前缀和 贪心 数据 Algorithm Archiv #Algorithm Archiv
动态规划 动态规划 动态规划 问题索引 线性 DP 数字三角形 基础 变式 LIS (最长上升子序列 ) 基础 变式 LCS (最长公共子序列) LCS 变式 LICS (最长上升公共子序列) 用多少个最长上升子序列可以覆盖一个给定的序列 求可变序列与给定数同余的方案数 将给定序列分段,保证每段和不超过给定数情况下,求每段中「所有数的最大值」之和的 Algorithm Archiv #Algorithm Archiv
CSAPP 第二章 信息的表示和处理 信息的表示和处理 信息的表示和处理 编码 无符号(Unsigned)数的编码 补码(Two's-complement)数的编码 其他编码方式 反码(Ones'Complement)编码 原码(Sign-Magnitude)编码 无符号数与补码数的转换 补码转无符号 无符号转补码 拓展一个数字的位表示 无符号的拓展 补码数的拓展 截断数 CSAPP #CSAPP
CSAPP 第三章 程序的机器级表示 程序的机器级表示 程序的机器级表示 数据格式 & 访问信息 数据格式 访问信息 操作数指示符 指令 & 算术和逻辑操作 & 控制 数据传送指令 数据传送之于指针 数据传送之于转型 压栈与出栈 算术和逻辑操作 基本操作 特殊操作 控制 条件控制 访问条件码 字节设置 条件跳转 基于条件 CSAPP #CSAPP
快速排序算法分析及其改进 基本算法 快排也是一种分治算法,所谓分治,也就是将大问题不断切分成小问题进而着眼于小问题的解决 我们在讨论归并排序的时候,我们是从小数组着手。我们不断地将小数组排序,再对有序的两个小数组组合成一个大的有序的数组。这种思想可以说是从分治的角度去考虑问题时一个最容易想到的(快排这个还真不一定那么容易想到,至少我是这么认为的) 快排的思想是,不断地对数组进行切分,切分得到的两个部分当中的数,有: Algorithm 4 #Algorithm 4