Data structures 用O(1/B)实现堆栈和队列

Data structures 用O(1/B)实现堆栈和队列,data-structures,stack,queue,Data Structures,Stack,Queue,这是教科书(第77页)中的练习: 练习48(外部内存堆栈和队列)。设计一个堆栈数据结构,在I/O模型中,每个操作需要O(1/B)I/O 第2.2节。在内存中保留两个块就足够了。 在一个只有一个块的简单实现中会发生什么 记忆力调整数据结构以实现FIFO,同样使用两个 内部缓冲内存块。使用四个缓冲区实现deques 街区 我不要密码。有谁能解释一下这个问题需要什么,以及我如何在O(1/B)中进行操作吗?正如书中所说,引用第27页的第2.2节: 外部存储器:有特殊的I/O操作,可在慢速和快速存储器之间

这是教科书(第77页)中的练习:

练习48(外部内存堆栈和队列)。设计一个堆栈数据结构,在I/O模型中,每个操作需要O(1/B)I/O 第2.2节。在内存中保留两个块就足够了。 在一个只有一个块的简单实现中会发生什么 记忆力调整数据结构以实现FIFO,同样使用两个 内部缓冲内存块。使用四个缓冲区实现deques 街区


我不要密码。有谁能解释一下这个问题需要什么,以及我如何在O(1/B)中进行操作吗?

正如书中所说,引用第27页的第2.2节:

外部存储器:有特殊的I/O操作,可在慢速和快速存储器之间传输B个连续字。对于 例如,外部存储器可以是硬盘,M则是 主内存大小和B将是一个块大小,这是一个很好的折衷 在低延迟和高带宽之间。在当前技术上,M=1 GB和B=1 MB是实际值。一个I/O步骤就是 大约10毫秒,相当于1GHz机器的107个时钟周期。和另一个 通过设置参数M和B,我们可以对较小的访问进行建模 硬件缓存和主内存之间的时间差


因此,在O(1/B)中进行操作很可能意味着,换句话说,对每个B堆栈/队列操作使用恒定数量的I/O操作。

我很确定您需要告诉我们什么是
B
。@Dukeling问题是第77页的练习48。我相信B是街区数。如果我错了,请纠正我。