1算法与复杂度
不看正文,写出“算法与复杂度”最关键的定义、公式或状态不变量。
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
不看正文,写出“算法与复杂度”最关键的定义、公式或状态不变量。
不看正文,写出“线性表与链表”最关键的定义、公式或状态不变量。
不看正文,写出“栈、队列与递归”最关键的定义、公式或状态不变量。
不看正文,写出“串与 KMP”最关键的定义、公式或状态不变量。
不看正文,写出“树、二叉树与森林”最关键的定义、公式或状态不变量。
不看正文,写出“图的存储与遍历”最关键的定义、公式或状态不变量。
不看正文,写出“查找、散列与并查集”最关键的定义、公式或状态不变量。
不看正文,写出“内部排序”最关键的定义、公式或状态不变量。
不看正文,写出“算法设计与综合题”最关键的定义、公式或状态不变量。
顺序表支持 O(1) 随机访问;单链表已知结点后插入是 O(1),按下标查找是 O(n)。
渐进复杂度比较增长阶;顺序执行取最大阶,嵌套循环通常相乘。
KMP 在失配时用模式串自身的最长相等前后缀移动模式,不回退主串指针。
栈遵循 LIFO,队列遵循 FIFO;循环队列常用牺牲一个单元来区分队满与队空。
邻接矩阵适合稠密图,邻接表适合稀疏图;BFS 求无权图最短路,DFS 揭示递归结构。
二叉树遍历的递归结构决定先序、中序、后序;完全二叉树适合顺序存储。
稳定性描述相等关键字的相对次序;归并稳定且最坏 O(n log n),快速排序最坏 O(n²)。
二分查找要求有序且能高效取中点;散列表性能取决于装填因子与冲突处理。
先写输入输出、边界与不变量,再由约束选择结构,最后证明不漏解并计算复杂度。