to starfish:
不同意你的说法:“比如知道要找的记录是第100个记录,也无法在O(1)的时间内找到第100个记录,因为文件中的记录在硬盘上不是连续存储的,而是类似链表一样存储,所以要找第100个记录,必须从头找起!”
如果已知“要读的记录”在文件中的偏移,文件系统可以根据文件分配表FAT快速找到“要读的记录”的物理扇区号,并完成读操作,无须从头找起。要说从头找起,只是在FAT分配表中从头找起,这无须多少时间,因为FAT相对硬盘容量来说很小,而且多数情况下FAT已缓存到内存。本问题的关键是减少对外存的访问次数,在内存中对FAT进行的查找不管次数多少,不应计入算法复杂度。