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