Справка по двоичному поиску «Programming Pearls»

Я просто не могу понять, как это будет работать.

Вопрос:
Для последовательного файла, содержащего не более четырех миллиардов 32-битных целых чисел в случайном порядке, найдите 32-битное целое число, которого нет в файле (и должно быть хотя бы одно отсутствующее)

Ответ:
полезно рассматривать этот двоичный поиск с точки зрения 32 битов, которые представляют каждое целое число. На первом проходе алгоритма мы читаем (самое большее) четыре миллиарда входных целых чисел и записываем целые числа с начальным нулевым битом в один последовательный файл, а с одним ведущим битом - в другой файл.

Один из этих файлов содержит at самое большее два миллиарда целых чисел, поэтому в следующий раз мы используем этот файл в качестве текущего ввода и повторим процесс проверки, но на этот раз со вторым битом.

Итак, снова и снова разбивая файл (двоичный поиск), как это на самом деле приведет к меня к отсутствующему 32-битному целому числу?

13
задан John Saunders 16 February 2011 в 01:29
поделиться