“在外存模型中有 (N) 项、内存容纳 (M) 项、每块 (B) 项。扫描代价 (Scan(N)=\Theta(N/B)),比较排序最优量级 $$Sort(N)=\Theta\left(\fr…”
形式陈述 ​
Aggarwal–Vitter 外存模型把数据分置于两层:内部存储可容纳
在比较模型的标准参数范围内,外排的量级为
其中当
直觉 ​
数组在 RAM 分析中连续读取
例子与边界 ​
若
多路归并排序先在内存中形成大小约
该模型不是对机械硬盘寻道时间的逐周期仿真,也不声称 CPU 工作真的免费;它有意隔离数据搬运下界。某些 cache-oblivious 结果另需 tall-cache 假设,例如
推论与应用 ​
外存分析为数据库索引、文件排序、图处理和科学计算提供统一成本语言。渐近记号在这里计的是块传输而非指令;同一算法可以拥有良好的 CPU 时间却产生糟糕的 I/O 模式。B 树、B+ 树、缓冲树与外存归并正是通过批处理和高扇出逼近这些模型界。
模型还提醒实现者区分“顺序工作量”和“数据移动量”。把循环常数优化到更小,无法弥补访问顺序导致的额外块传输;只有重排计算、分块或改变数据布局,才能触及 I/O 复杂度的主项。
参考资料
- Alok Aggarwal and Jeffrey S. Vitter, “The Input/Output Complexity of Sorting and Related Problems,” Communications of the ACM 31(9), 1988, pp. 1116–1127.
- Jeffrey S. Vitter, Algorithms and Data Structures for External Memory, Now Publishers, 2008, Chs. 2–3.