МЕНЮ:
Аналитик | Постановщик задач | Проектировщик | Программист | Программист БД
Инженер по тестированию | Тестировщик | Инженер по документированию
Инженер по внедрению | Инженер поддержки | Менеджер проекта | Менеджер подразделения
Менеджер по продажам | Менеджер по маркетингу | Администратор | Администратор БД
Литература | Контакты
\

Книга Жемчужены творчества программистов на IT БАЗАР

Этого наброска оказалось достаточно, чтобы программист решил свою задачу. Некоторые из особенностей реализации, с которыми он столкнулся, описаны в задачах 1, 2 и 6 в конце данной главы.
1.5. ОСНОВНЫЕ ПРИНЦИПЫ
Мой собеседник рассказал мне о своей задаче по телефону. Нам потребовалось около 15 мин, чтобы разобраться в особенностях задачи и найти решение с побитовым представлением. Написание программы из нескольких десятков строк на Фортране заняло у него пару часов. Это было неплохо по сравнению с сотнями строк и неделей программирова­ния, чего мы боялись в начале телефонного разговора. Программа работала молниеносно: в то время как программа сортировки слиянием на диске могла бы работать несколько минут, эта программа затрачива­ла ненамного больше времени, чем требуется для чтения входных данных и записи выходных, - менее 10 с.
В этих фактах содержится первый урок, извлекаемый из рассмотре­ния данного случая: тщательный анализ небольшой задачи может иногда лринести потрясающую практическую пользу. В данном примере тщательное изучение в течение нескольких минут привело к сокраще­нию на порядок числа операторов в программе, времени программиро­вания и времени прогона. Генерал Ч. Йегер (первый человек, полетев­ший со сверхзвуковой скоростью) похвалил двигательную установку самолета следующими словами: "Проста, мало деталей, легко обслужи­вать, очень прочная". Эти эпитеты относятся и к нашей программе. Однако может оказаться, что специфические структуры данной прог­раммы будет тяжело модифицировать при изменении объемов некото­рых данных. Являясь рекламой искусного программирования, этот пример иллюстрирует следующие общие принципы.
Правильная постановка задачи. Наш спор почти целиком был посвя­щен формулировке задачи. Я рад, что программист не успокоился на первой программе, которую я ему описал. Задачи 9 и 10 имеют элегант­ные решения, если вы правильно их сформулируете. Хорошенько поду­майте над ними, прежде чем смотреть подсказки и решения.
Побитовая структура данных. Эта структура данных представляет собой компактное отображение конечного набора данных для случая, когда каждый элемент встречается не более одного раза и с ним не связано никаких других данных. Даже если эти условия не удовлетво­ряются (имеются повторяющиеся элементы или дополнительные дан­ные), ключ, полученный с помощью этого отображения, может быть использован в качестве ссылки на адрес в таблице, содержащей более сложные входные данные.
16


Страница №17
*
Зайцев нет
© "IT БАЗАР", 2003. Все права защищены. Создание: © "z-group" студия веб-дизайна, 2003.
Также может поискать работу на прямую в следуйщих организациях:
IT БАЗАР