事务保证了什么?
算法进阶 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
再举一个"系统里用到算法"的例子。
画出这张全景图。
写出你的解释。
写出你的解释。
写出你的解释。
写出你的解释。
想一个"懂原理才能解决"的问题。
说出补码存在的理由。
为什么数组比链表缓存友好?
参考答案(家长):如路由用最短路、压缩用哈夫曼、查重用哈希。
参考答案(家长):不会出现做了一半的中间状态。
参考答案(家长):第一次要从硬盘读入并填充缓存,第二次直接命中缓存。
参考答案(家长):从底层电路一直画到应用程序。
参考答案(家长):每层递归占用栈空间,栈有大小限制,超了就溢出。
参考答案(家长):内存按行连续存放,按行访问缓存命中率高。
参考答案(家长):如内存泄漏、性能抖动、并发 bug。
参考答案(家长):读改写不是原子的,两个线程可能都读到旧值。
参考答案(家长):连续存放,一次能加载相邻的多个元素。
参考答案(家长):让减法能用加法电路实现。
说出线程共享内存的一个好处和一个坏处。
文件下载用哪个?
索引的原理和你学过的什么算法有关?
把这张地图贴在桌前。
写下这五年你最大的三个收获。
调整你的学习计划。
用这三个问题分析"缓存"。
给"进程"找一个生活类比。
写程序验证缓存友好性。
把你测出的数据记下来。
参考答案(家长):TCP,不能丢数据。
参考答案(家长):好处是通信快,坏处是要处理同步问题。
参考答案(家长):随时对照,知道自己在学哪一块。
参考答案(家长):树和二分查找。
参考答案(家长):还是每天十分钟,但允许一个概念花几天。
参考答案(家长):能写出来,说明真的走了很远。
参考答案(家长):如一个正在进行的项目,有自己的资源和进度。
参考答案(家长):解决速度差异;没有它每次都要访问慢速存储;像预处理和记忆化。
参考答案(家长):亲手测出的数据最有说服力。
参考答案(家长):两种遍历各计时,对比结果。
想想哪个最吸引你。
列出清单并标注。
默写这六步。
默写这四步。
检查你目前养成了几个。
计时默写。
口头回答。
每个用两句话回答。
列出要补的清单。
花点时间整理归档。
参考答案(家长):清单越具体,越知道自己有什么。
参考答案(家长):有期待的项目,学起来更有劲。
参考答案(家长):有流程就不会乱猜。
参考答案(家长):能不假思索地说出来,就是本能了。
参考答案(家长):写不出来的就是要重练的。
参考答案(家长):没养成的,从这周开始刻意练。
参考答案(家长):说清"为了解决什么",比背定义有用。
参考答案(家长):能流畅说出,说明体系清晰。
参考答案(家长):整理好的资料,将来会反复用到。
参考答案(家长):补完再进入下一阶段,走得更稳。