外部排序与败者树
约 45 分钟
本课针对 408 全真卷中的 外部排序与败者树。目标是既能在两分单选中快速排除,也能在十分综合题中保留完整过程。
考纲模型
外部排序由生成初始归并段和多路归并组成;增加归并路数可减少趟数,但需要更多缓冲区。
先定义变量、单位、初始状态与不变量。遇到结构题画字段,遇到时序题画时间线,遇到算法题写输入输出和终止条件。结论必须由题设推出,不能依赖背过的某一道题。
综合推演
有 r 个初始归并段,k 路归并趟数为 ceil(log_k r)。败者树用于高效选择多个有序段当前最小记录。
书写顺序固定为:规则或公式、参数代入、中间状态、最终结论。计算完成后做数量级与边界检查;代码实现还要验证空图、不可达、重复访问和最小规模。
高频失分点
不能只算归并趟数,还要考虑每趟读写全部数据;初始归并段长度受内存块数限制。
全真训练中,选择题最多用反例与量词检查;综合题即使最后数值错误,也要保留可评分的中间式、状态表和复杂度。代码题必须真运行,不接受只覆盖样例的硬编码。
课后验收
完成本课单选、多选和综合应用题。单选解释三个错误项,多选不得漏选;计算保留单位,文本按要点作答,代码必须通过四个独立测试。次日遮住答案重做,并记录耗时。
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。