Попытайтесь написать короткую и эффективную программу.
5. Программист сказал, что под эту программу можно занять около мегабайта памяти, но предложенный нами вариант использовал около 1,25 мегабайта. Программисту удалось выделить необходимый объем оперативной памяти. Если бы мегабайт был жестким ограничением в использовании оперативной памяти, какое решение вы бы тогда предложили? За какое количество проходов выполнялся бы предложенный вами алгоритм?
6. Что бы вы посоветовали программисту, если бы каждое семизначное число его задачи могло повторяться, скажем, не более десяти раз? Как в этом случае меняется предлагаемое вами решение в зависимости от количества доступной памяти?
7. [R. Weil] Предложенная программа имеет несколько недостатков. Во-пер- вых, предполагается отсутствие повторов в массиве входных данных. Что произойдет, если какое-либо число встретится дважды? Как можно изменить программу, чтобы обработать такую ситуацию? Что произойдет, если на входе окажется отрицательное целое число пли положительное, но большее либо равное п? Что, если на входе будет вообще не число? Как следует обрабатывать такие ситуации? Какие еще проверки могла бы включать программа? Опишите небольшие наборы данных, которые могут быть использованы для проверки работоспособности программы, включая корректную обработку описанных выше (и других возможных типов) некорректных данных.
8. Когда эта задача была поставлена перед программистом, все бесплатные номера в США начинались с кода 800. Сейчас эти номера могут иметь код 800, 877 и 888, причем список таких кодов растет. Как бы вы отсортировали все эти номера, используя лишь один мегабайт оперативной памяти? Как бы вы хранили набор бесплатных номеров, если требуется обеспечить возможность быстрой проверки наличия какого-либо номера в списке?
Одна из проблем, с которыми приходится сталкиваться при использовании большего объема памяти для сокращения времени работы программы, заключается в том, что на инициализацию памяти также может уйти достаточно много времени. Попробуйте обойти эту проблему, разработав метод, позволяющий инициализировать вектор нулями при первом к нему обращении.
Опубликовал vovan666
April 16 2013 23:34:15 ·
0 Комментариев ·
2960 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.