Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 202 203 204 205 206 207 < 208 > 209 210 211 212 213 214 .. 426 >> Следующая

элементов, попадающих в этот верхний интервал. Иногда требу-
ется создать искусственное значение для верхней границы
последнего интервала.
Не ошибитесь с операциями < или <=! Убедитесь, что при
значениях, попадающих в верхний диапазон, цикл корректно
завершается, а также что границы интервалов обрабатываются
правильно.
Рассмотрите вопрос использования бинарного поиска вместо
последовательного В примере с оценками цикл, присваивающий
отметки, последовательно проходит по списку предельных
значений баллов. Если у вас будет более длинный список,
затраты на последовательный поиск могут чрезмерно возрасти. В
этом случае можно воспользоваться квази-бинарным поиском.
"Квази" он потому, что цель большинства бинарных поисков -
нахождение значения. В данном случае вы не намерены найти
значение - вы ищете правильную категорию для этого значения.
Алгоритм бинарного поиска должен корректно определить, куда
это
Вероятность
Сумма страхового иска
0,458747
0,547651
0,627764
0,776883
0,893211
0,957665
0,976544
0,987889
$0,00 $254,32 $514,77 $747,82 $1 042,65 $5 887,55 $12 836,98
$27 234,12
422 ЧАСТЬ IV Операторы
значение попадает. Не забывайте также рассматривать граничные
точки как специальный случай.
Рассмотрите вопрос использования индексного доступа вместо
ступенчатого метода Схема с индексным доступом (см. раздел
18.3) может быть хорошей альтернативой ступенчатому подходу.
Поиск, выполняющийся в ступенчатом методе, может увеличить
накладные расходы, и если, скорость выполнения имеет значение,
вы, возможно, захотите пожертвовать объемом памяти и затратами
на дополнительную индексную структуру, чтобы получить
преимущество в скорости, обусловленное более прямым методом
доступа.
Очевидно, эта альтернатива во всех случаях не годится. В
примере с оценками вы, возможно, захотите ее использовать.
Если у вас всего 100 дискретных процентных значений, расходы
на дополнительную память для индексного массива не будут
чрезмерными. С другой стороны, если вы работаете с данными
вероятностного распределения, приведенными выше, вы не сможете
применить индексную схему, потому что не сможете задействовать
в качестве ключей к таблице данных такие числа, как 0,458747 и
0,547651.
В некоторых случаях подойдет любой из нескольких вари-
Перемреетная ссылка 0 пра- т* ~ *
¦ильных подходах к выбору антов' И задачей проектирования
является выбор одного из
альтернативных способов т~ нескольких хороших вариантов для
этого конкретного слу- ектирования см. главу чая. Не слишком
волнуйтесь по поводу выбора наилучше
го. Как говорит Батлер Лемпсон, выдающийся инженер из
Microsoft, лучше стремиться к хорошему решению и избегать
неудач, чем пытаться найти наилучшее решение (Lampson, 1984).
Поместите ступенчатый поиск в таблице в отдельный метод Когда
вы создаете функцию преобразования, которая трансформирует
такое значение, как StudentGrade, в табличный ключ, поместите
ее в отдельный метод.
18.5. Другие примеры табличного поиска
Несколько примеров табличного поиска встречаются в других
разделах этой книги. Они используются в процессе обсуждения
других методик, и поэтому в контексте не подчеркивается их
принадлежность к табличному поиску. Вот где вы можете их
найти:
¦ поиск ставок в таблице страхования: раздел 16.3;
¦ применение таблиц решения для замены сложной логики:
подраздел "Используйте таблицы решений для замены сложных
условий" раздела 19.1;
¦ расходы на страничную организацию памяти при табличном
поиске: раздел 25.3;
¦ комбинации логических значений (А или В или С): подраздел
"Замена сложных выражений на обращение к таблице" раздела
26.1;
¦ предварительное вычисление значения в таблице погашения
ссуд раздел 26.4.
ГЛАВА 18 Табличные методы 423
Контрольный список: табличные методы
? Рассмотрены ли табличные методы в качестве альтерна-
ftttp://cc2&com/1872 тивы сложной логике?
? Рассмотрены ли табличные методы в качестве альтернативы
сложным структурам с наследованием?
? Рассмотрен ли вопрос размещения табличных данных отдельно от
программы и их чтения во время выполнения, чтобы позволить
обновлять данные без изменения кода?
? Если доступ к таблице нельзя осуществить напрямую с помощью
простого индекса массива (как в примере с возрастами),
помещены ли вычисления ключа доступа в отдельный метод, а не
разбросаны по всему коду?
Ключевые моменты
¦ Таблицы представляют собой альтернативу сложной логике и
структурам с наследованием. Если вы понимаете, что сбиты с
толку логикой программы или деревом наследования, спросите
себя, не проще ли использовать таблицу поиска.
¦ Основной вопрос при использовании таблиц состоит в выборе
способа доступа к таблице. Вы можете использовать прямой,
индексный или ступенчатый доступ.
¦ Другой основной вопрос состоит в выборе того, что конкретно
будет помещено в таблицу
ГЛАВА 19
Общие вопросы управления
Содержание
http://cc2e.coni/1978 . _ . _
¦ 19.1. Логические выражения
Предыдущая << 1 .. 202 203 204 205 206 207 < 208 > 209 210 211 212 213 214 .. 426 >> Следующая