Похоже, в этом вопросе есть подвох, о котором никто до сих пор не говорил; интервьюер только попросил интервьюируемого написать программу, которая ПРОВЕРЯЕТ
(i) если каждое число, составляющее 10G, присутствует один раз и только один раз - что должен делать собеседник, если числа в данном списке присутствуют несколько раз? должен ли он предположить, что ему следует прекратить использовать программу и выдать исключение, или он должен предположить, что ему следует исправить ошибку, удалив повторяющийся номер, и заменить его другим (это может быть дорогостоящим упражнением, поскольку это предполагает полную перестановку набора номеров). )? исправление этого необходимо для выполнения второго шага в вопросе, т. е. чтобы убедиться, что данные хранятся наилучшим образом, что требует наименьших возможных проходов.
(ii) Когда собеседнику было предложено проверить, хранится ли набор данных веса 10G таким образом, чтобы ему требовалось наименьшее количество пауз для доступа к любому из этих номеров;
что должен делать собеседник? должен ли он остановиться и выбросить исключение в тот момент, когда он обнаружит проблему в алгоритме, в котором они были сохранены, или исправить ошибку и продолжить до тех пор, пока все элементы не будут отсортированы в порядке наименьших возможных проходов?
Если интервьюер намерен попросить интервьюируемого написать алгоритм, который находит наилучшую комбинацию чисел, которые могут быть сохранены в 10 ГБ, с учетом 64 32-битных регистров; а также написать алгоритм для сохранения этих выбранных наборов чисел наилучшим из возможных способов, которые требуют наименьшего количества проходов для доступа к каждому; он должен был спросить об этом прямо, не так ли?
Я полагаю, что намерение интервьюера может заключаться только в том, чтобы увидеть, как собеседник подходит к проблеме, а не в том, чтобы на самом деле извлечь из собеседника рабочее решение; хотел бы купить это понятие?
С уважением,
Samba