Cтраница 4
![]() |
Затраты на вставку и поиск в таблицах символов. [46] |
Построение упорядоченных таблиц путем последовательной вставки, по существу, эквивалентно выполнению алгоритма сортировки вставками, который был описан в разделе 6.2. Общее время, необходимое для построения таблицы, связано квадратичной зависимостью с количеством элементов, поэтому вряд ли стоит использовать этот метод для построения больших таблиц. Однако при выполнении огромного количества операций search в небольшой таблице поддержка упорядоченности элементов вполне оправдана, поскольку в соответствии с леммами 12.3 и 12.4 этот подход может в два раза уменьшить время, затрачиваемое на обнаружение промахов при поиске. Если элементы с дублированными ключами не должны храниться в таблице, дополнительные затраты на поддержку упорядоченности таблицы не столь велики, как может казаться, поскольку вставка выполняется только после обнаружения промаха при поиске и, следовательно, время, затрачиваемое на вставку, пропорционально времени, затрачиваемому на поиск. С другой стороны, если элементы с дублированными ключами могут храниться в таблице, при использовании неупорядоченной таблицы время выполнения операции insert может оставаться постоянным. [47]
Для каждого слоя имеется небольшой выбор конкретных материалов, порядка 2 - 10 вариантов. Материалы удобно выбирать по отдельности, задав для каждого небольшую таблицу. Однако существуют несовместимые пары материалов, например стальная сетка не должна касаться алюминиевых листов, чтобы не создавать гальванической пары. Поэтому приходится задавать выбор одновременно всех слоев в составе конструкции. Номер конструкции тепловой изоляции определяется по таблице решений со следующими входами: тип изолируемого объекта; местонахождение; назначение тепловой изоляции; признак наличия спутника; признак, отмечающий особые условия эксплуатации трубопроводов; диаметр изолирующего объекта; температура. [48]
В этой книге, впоследствии переведенной на русский язык, приведена таблица элементов, в которой 44 элемента ( из 63 известных в то время), были расставлены в 6 столбцах в соответствии с их валентностью ( высшей) по водороду. Как видно из этой таблицы и приложенной к ней второй небольшой таблицы, автор фиксирует внимание на разностях атомных весов между сходными элементами, расставленными в вертикальных группах: 1-я группа - углерода, 2-я - азота, 3-я-кислорода, 4-я - галогенов, 5-я - щелочных металлов и 6-я - щелочноземельных металлов. В основной таблице, объединяющей эти группы, 28 элементов расставлены в порядке возрастания их атомных весов, что, как мы уже видели, в то время не было новостью. Вторая таблица может рассматриваться как извлечение из первой. Однако, если в первой таблице фигурируют тетрады и пентады, подобранные достаточно хорошо, во вторую таблицу входят элементы, не укладывающиеся в группы первой таблицы. Разности атомных весов между соответствующими элементами пентад приблизительно постоянны. Эта последняя закономерность была отмечена еще ранее. [49]
Как обычно, следует иметь в виду, что различные реализации операций на таблицах символов обладают различными характеристиками производительности, которые могут зависеть от конкретного набора операций. В одном приложении операция insert может использоваться сравнительно редко ( возможно, для построения таблицы) при огромном количестве выполняемых операций search; в другом, в сравнительно небольших таблицах, может выполняться огромное количество операций insert и remove, перемежаемое операциями search. He все реализации будут поддерживать все операции, и некоторые из них могут обеспечивать эффективную поддержку определенных функций за счет других; при этом явно предполагается, что менее эффективные функции выполняются редко. Каждая из базовых операций в интерфейсе таблицы символов находит важные применения, поэтому для обеспечения эффективного использования различных комбинаций операций предлагается множество базовых вариантов реализации. В этой и нескольких следующих главах основное внимание будет уделено реализациям базовых функций construct, insert и search с приведением некоторых пояснений относительно функций remove, select, sort и join, когда в этом возникнет необходимость. Широкое множество алгоритмов, требующих рассмотрения, обусловлено различием характеристик производительности различных комбинаций базовых операций, а также ограничениями, накладываемыми на значения ключей, размерами элементов и другими факторами. [50]
Приведенные примеры иллюстрируют методику получения z - преобразований для некоторых простейших функций. Аналогичным способом составляются таблицы, содержащие наиболее часто употребляемые функции. Небольшая таблица такого рода помещена в приложении к данной книге. В ней для нескольких непрерывных функций времени даны преобразования Лапласа и z - преобразования. [51]
Не создавайте два индекса, которые начинаются с одного и того же поля, так как это мешает при выполнении оптимизации запросов. Кроме того, не создавайте слишком много индексов, особенно по нескольким полям, так как это может не ускорить, а наоборот - замедлить обработку запросов. Для небольших таблиц достаточно ограничиться только одним первичным ключом или уникальным индексом или вообще не создавать никаких индексов. [52]