我有2个数据库文件,其中我必须搜索哪个,我使用了4种方法,即内存顺序,内存中二进制,磁盘顺序和磁盘二进制。需要搜索的文件大小为20Kb。这4个程序的预计运行时间应为
disk sequential > disk binary > in-memory sequential > in-memory binary
但它的出现了
disk binary > disk sequential > in-memory sequential > in-memory binary
。
磁盘二进制文件比磁盘顺序大约多1.5秒。为什么这样? 我已经计算了打开文件之前打印时间的时间,然后打开文件并进行搜索。
谢谢!
答案 0 :(得分:2)
这取决于文件的小尺寸;磁盘不像主内存,它被分成块,你的文件可能不会大于20块。
所以log_2(20)大约为5,然后二分搜索不会更好,除非你要搜索的是在第五个块之后。