Ожидаемая эффективность времени - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть 2 файла базы данных, и среди тех, которые мне пришлось искать, я использовал 4 метода: последовательный в памяти, двоичный в памяти, последовательный диск и двоичный диск.Файл, который нужно было найти, был размером 20 КБ.Ожидаемое время работы этих 4 программ должно было составлять

disk sequential > disk binary > in-memory sequential > in-memory binary, но оно должно составлять disk binary > disk sequential > in-memory sequential > in-memory binary.

Двоичный двоичный диск занимает на 1,5 секунды больше, чем последовательный диск.Почему так?Я рассчитал время как печать времени до открытия файла, а затем после открытия файла и выполнения поиска.

Спасибо!

1 Ответ

2 голосов
/ 05 сентября 2011

Может зависит от небольшого размера вашего файла; диск не похож на основную память, он разделен на блоки, и ваш файл, вероятно, не будет больше, чем 20 блоков.
Таким образом, log_2 (20) составляет около 5, и тогда двоичный поиск не будет лучше, если только то, что вы ищете, не идет после пятого блока.

...