已知内存共有8块 若要排序有70块的数据集 应如何组织 才能使磁盘读写次数最少。下列方案中磁盘读
已帮助 人
已知内存共有8块,若要排序有70块的数据集,应如何组织,才能使磁盘读写次数最少。下列方案中磁盘读写次数最少的方案是________。
A.方案I:(1)以8块为一个单位划分子集合,每个子集合进行内排序并存储,形成9个已排序子集合(其中包含一个仅有6块的子集合);(2)接着在9个子集合中选择3个子集合 (其中包含仅有6块的子集合),进行一个三路归并,形成一个已排序子集合;(3)再将剩余5个子集合与刚才归并后形成的子集合,进行一个七路归并,形成最终的已排序集合。这个方案的磁盘读写次数最少。
B.方案II:(1)以7块为一个单位划分子集合,每个子集合进行内排序并存储,形成10个已排序子集合;(2)接着在10个子集合中任选5个子集合进行一个五路归并,形成一个已排序子集合;(3)再将剩余5个子集合与刚才归并后形成的子集合,进行一个六路归并,形成最终的已排序集合。这个方案的磁盘读写次数最少。
C.方案III:(1)以8块为一个单位划分子集合,每个子集合进行内排序并存储,形成9个已排序子集合(其中包含一个仅有6块的子集合);(2)接着在9个子集合中任选七个子集合进行一个七路归并,形成一个已排序子集合;

回答
共1条回复-
static void Main(string[] args)
{
int[] a ={ 1, 4, 5, 2, 0 };
int t;
for(int i=0;i<4;i++)
for (int j = 0; j < 4 -i; j++)
if (a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
foreach (int k in a)
Console.WriteLine(k);
Console.ReadLine();
}
