我正在寻找一个来自数据结构和算法课程的问题的答案.我了解了合并排序但不记得集群和缓冲区.我不太清楚我理解这个问题.有人可以帮忙解释或回答吗?
使用一个簇大小的128个输入缓冲区对大小为1百万个簇的文件进行排序.有一个簇大小的输出缓冲区.如果使用平衡k-way合并排序(多步合并)算法,将需要多少磁盘I/O?
它询问的是磁盘操作的总数,这里的集群可以是任意大小。
您需要知道平衡 k 路合并排序的每次迭代需要多少个磁盘 IO。(提示:每个合并过程都需要从磁盘读取数组中的每个值并将其写入磁盘一次)
然后您计算出必须执行多少次迭代才能读取数据。
然后可以计算磁盘 IO 的总数。