预期的时间效率

时间:2011-09-05 18:40:57

标签: file runtime binary-search

我有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秒。为什么这样? 我已经计算了打开文件之前打印时间的时间,然后打开文件并进行搜索。

谢谢!

1 个答案:

答案 0 :(得分:2)

这取决于文件的小尺寸;磁盘不像主内存,它被分成块,你的文件可能不会大于20块。
所以log_2(20)大约为5,然后二分搜索不会更好,除非你要搜索的是在第五个块之后。