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

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

Д. Макилроем предложена иллюстрация циклического сдвига 10-эле-ментного массива на пять позиций с помощью переворотов ладоней. Начните, расположив ладони перед собой, левую над правой.
Рис. 2.3
Повернуть левую руку
Повернуть правую руку
Повернуть обе руки
Программа реверсирования эффективна по времени, по памяти и нас­только коротка и проста, что в ней довольно тяжело допустить ошибки. Это в точности та программа,которую использовали в своей книге Кер-ниган и Плоджер для редактора текста, которая стала работать правиль­но при первом же прогоне, в то время как их предыдущая программа для решения подобной задачи, в основе которой лежали списки со ссыл­ками, содержала несколько ошибок. Эта программа использовалась в нескольких редакторах текста, в том числе в редакторе ED для операци­онной системы UNIX, с помощью которого я ввел с клавиатуры эту гла­ву. К. Томпсон написал этот редактор и программу реверсирования в 1971 г. и утверждает, что она стала легендой,
2.4. СОБЕРЕМ ВСЕ ВМЕСТЕ (СОРТИРОВКА)
Обратимся теперь к задаче В. Дан словарь английских слов (по одно­му слову, набранному строчными буквами, на каждой строке входных данных), =1 мы должны найти все группы анаграмм. Для изучения этой задачи еаь ряд серьезных причин. Первая - техническая: ее решение является удачной комбинацией выработки правильного взгляда на за­дачу и выбора подходящих средств. Вторая причина существеннее: вам же не хочется оказаться единственным человеком на вечеринке, кото­рый не знает, что deposit, dopiest, posited и topside - анаграммы? А если этих причин недостаточно, то в задаче 6 будет описан подобный пример как следствие из прикладной задачи.
Есть несколько удивительно неэффективных и сложных способов решения данной задачи. Любой метод, в котором рассматриваются все перестановки букв в слове, обречен на неудачу. Для слова microphoto-graphic (анаграмма слова photomicrographic) существует 17! перестано­вок, а 17! * 3 х Ю . Даже допустив адскую скорость - 1 мкс на переста-
26


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