4.5 磁带文件存放优化

4.5 磁带文件存放优化

基础问题:假设其中一盘磁带上有n份文件,他们的长度分别为\(L[0],L[1],L[2],...,L[n-1]\),且被访问的概率分别为\(P[0],P[1],P[2],...,P[n-1]\),如果这些文件被访问的概率相同,那么请问怎样安排他们在磁带上的存储顺序最好?

解答:
首先定义什么是最好,我们知道,磁带是一种线性存储的设备,对于存储在上面的第n个文件的寻址,我们要先经过前面的n-1个文件的磁带长度,时间复杂度为O(n),那么,如果能够找到一种文件存储顺序,使得访问这些文件的平均访问长度最短,就可以得到最佳的效率,也就是最好的存储顺序。
从小到大存放

拓展问题:

如果被访问的概率不同,那么又该如何存放?

按照\(\frac{P[i]}{L[i]}\)的值从大到小排列

// 4.5 磁带文件存放优化
class Test{
	public static void main(String[] args) {
		/**
		基础问题:
			假设其中一盘磁带上有n份文件,他们的长度分别为$L[0],L[1],L[2],...,L[n-1]$,且被访问的概率分别为$P[0],P[1],P[2],...,P[n-1]$,如果这些文件被访问的概率相同,那么请问怎样安排他们在磁带上的存储顺序最好?
		解答:
			首先定义什么是最好,我们知道,磁带是一种线性存储的设备,对于存储在上面的第n个文件的寻址,我们要先经过前面的n-1个文件的磁带长度,时间复杂度为O(n),那么,如果能够找到一种文件存储顺序,使得访问这些文件的平均访问长度最短,就可以得到最佳的效率,也就是最好的存储顺序。
			从小到大存放
		*/
		/**
		拓展问题:
			如果被访问的概率不同,那么又该如何存放?
			按照$ P[i]/L[i] $的值从大到小排列
		*/

		
	}
}
posted @ 2020-11-26 11:11  BOTAK  阅读(182)  评论(0编辑  收藏  举报