Линейное зондирование
Линейное зондирование — это схема в программировании для разрешения коллизий в хеш-таблицах, структурах данных для управления наборами Шаблон:Не переведено 5 и поиска значений, ассоциированных с данным ключом. Схему придумали в 1954 Джин Амдал, Шаблон:Не переведено 5 и Артур Сэмюэл, а проанализировна она была в 1963 Дональдом Кнутом.
Вместе с Шаблон:Не переведено 5 и Шаблон:Не переведено 5 линейное зондирование является видом Шаблон:Не переведено 5. В этих схемах каждая ячейка хеш-таблицы содержит одну пару ключ-значение. Если хеш-функция даёт коллизию, отображая значение нового ключа в ячейку хеш-таблицы, занятую другим ключом, линейное зондирование просматривает таблицу до ближайшей свободной следующей ячейки и вставляет новый ключ туда. Поиск значения осуществляется тем же образом, путём просмотра таблицы последовательно, начиная с позиции, определённой хеш-функцией, пока не найдёт совпадение ключа, либо пустую ячейку.
Как писали Торуп и Чжан, «Хеш-таблицы интенсивно используют нетривиальные структуры данных и большинство имплементаций в аппаратуре использует линейное зондирование, быстрое и простое в реализации»{{#if: | }}<ref name="{{#if: | | _0ba5c855cce046c8 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Линейное зондирование может дать высокую производительность вследствие хорошей Шаблон:Не переведено 5 метода, но оно более чувствительно к качеству хеш-функции, чем другие схемы разрешения коллизий. Среднее ожидаемое время поиска у метода является константой, то же самое верно для вставки и удаления, если в имплементации используется случайный выбор хеш-функции, Шаблон:Не переведено 5, или Шаблон:Не переведено 5. Однако, на практике, хорошие результаты получаются и с другими функциями хеширования, такими как MurmurHash {{#if: | }}<ref name="{{#if: | | _1714a927cbe46118 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Операции
Линейное зондирование является компонентом схем Шаблон:Не переведено 5 для использования в хеш-таблицах для решения словарных задач. В словарной задаче структура данных должна работать с набором пар ключ-значение и должна обеспечивать возможность вставки и удаления пар, а также поиск значения, ассоциированного с ключом. В открытой адресации структурой данных служит массив Шаблон:Mvar (хеш-таблица), ячейки которого Шаблон:Math (если не пусты) содержат единственную пару ключ-значение. Хеш-функция используется для отображения каждого ключа в ячейку таблицы Шаблон:Mvar, куда этот ключ должен быть занесён, как правило, скремблируя ключи, так что ключи с близкими значениями не оказываются близко в таблице. Коллизия хеш-функции возникает, когда хеш-функция отображает ключ в ячейку, уже занятую другим ключом. Линейное зондирование является стратегией для разрешения коллизий путём размещения нового ключа в ближайшую следующую свободную ячейки{{#if: | }}<ref name="{{#if: | | _bc47cb63eb252b81 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _299e3fcdac27c0d7 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Поиск
Для поиска заданного ключа Шаблон:Mvar проверяются ячейки таблицы Шаблон:Mvar, начиная с ячейки с индексом Шаблон:Math (где Шаблон:Mvar — хеш-функция), затем ячейки Шаблон:Math, Шаблон:Math, …, пока не будет найдена свободная ячейка или ячейка, в которой содержится ключ Шаблон:Mvar. Если ячейка, содержащая ключ, найдена, процедура поиска возвращает значение из этой ячейки. В противном случае, если встретилась пустая ячейка, ключ не может находиться в таблице и процедура возвращает в качестве результата, что ключ не найден{{#if: | }}<ref name="{{#if: | | _bc47cb63eb252b81 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _299e3fcdac27c0d7 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}
Вставка
Для вставки пары ключ-значение Шаблон:Math в таблицу (возможно, с заменой любой существующей пары с тем же ключом) алгоритм вставки проходит ту же последовательность ячеек, что и при поиске, пока не найдёт либо пустую ячейку, либо ячейку, содержащую ключ Шаблон:Mvar. Новая пара ключ-значение размещается в этой ячейке{{#if: | }}<ref name="{{#if: | | _bc47cb63eb252b81 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _299e3fcdac27c0d7 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Если после вставки коэффициент загрузки таблицы (доля занятых ячеек) превышает некоторый порог, вся таблица может быть заменена на новую таблицу, размер которой увеличивается на постоянный множитель, как в случае динамического массива, с новой хеш-таблицей. Установка этого порога близким к нулю и использование высокого коэффициента расширения таблицы приводит к быстрым операциям, но требует больших затрат памяти. Обычно размер таблицы удваивается при достижении коэффициента загрузки 1/2, так что загрузка составляет от 1/4 до 1/2<ref>Шаблон:Harvnb; Седжвик и Уэйн уменьшают вдвое размер таблицы, если при делении загрузка таблицы станет слишком низкой, что приводит к более широкому диапазону [1/8,1/2] возможных значений коэффициента загрузки.</ref>
Удаление
Можно удалить пару ключ-значение из словаря. Однако недостаточно просто очистить ячейку. Возможно, существует другая пара с тем же хеш-значением, которая была размещена где-то после занятой ячейки. После очистки ячейки поиск второго значения с тем же значением хеш-функции наткнётся на пустую ячейку, и пара не будет найдена.
Таким образом, при очистке ячейки Шаблон:Mvar необходимо просмотреть последующие ячейки, пока не найдём пустую ячейку, либо ключ, который можно перенести в ячейку Шаблон:Mvar (то есть ключ, хеш-значение которого равно или меньше Шаблон:Mvar). Если найдена пустая ячейка, то можно очистить ячейку Шаблон:Mvar и остановить процесс удаления. Если же найден ключ, который можно перенести в ячейку Шаблон:Mvar, переносим его. Это приведёт к увеличению скорости поиска перенесённого ключа, а также очищает другую ячейку в блоке занятых ячеек. Необходимо продолжить поиск ключа, который может быть перенесён на это освободившееся место. Поиск ключа для переноса осуществляется до пустой ячейки, пока не достигнем ячейки, которая изначально была пуста. Таким образом, время выполнения всего процесса удаления пропорционально длине блока, содержащего удалённый ключ{{#if: | }}<ref name="{{#if: | | _bc47cb63eb252b81 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Альтернативно, можно использовать стратегию Шаблон:Не переведено 5, в которой пара ключ-значение удаляется путём замены значения специальным Шаблон:Не переведено 5, показывающим, что ключ удалён. Однако такие флаги приводят к увеличению коэффициента загрузки хеш-таблицы. В этой стратегии может стать необходимым удалить флаги из массива и пересчитать хеш-значения всех оставшихся пар ключ-значение, когда слишком много значений окажутся удалёнными{{#if: | }}<ref name="{{#if: | | _bc47cb63eb252b81 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _299e3fcdac27c0d7 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Свойства
Линейное зондирование даёт хорошую Шаблон:Не переведено 5, что означает, что нужно лишь несколько некешированных операций доступа к память на одну операцию. Ввиду этого, при поддержке низкого коэффициента загрузки алгоритм может дать высокую степень производительности. Однако, по сравнению с некоторыми другими стратегиями открытой адресации, скорость работы деградирует быстрее при высокой степени загрузки ввиду Шаблон:Не переведено 5, тенденции одной коллизии вызывать много близких коллизий {{#if: | }}<ref name="{{#if: | | _bc47cb63eb252b81 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Кроме того, для получения хорошей скорости работы этого метода требуется хеш-функция более высокого качества, чем для других схем разрешения коллизий{{#if: | }}<ref name="{{#if: | | _7e37736907e4c6ab }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Если алгоритм реализуется с хеш-функцией низкого качества, которая не исключает неоднородности во входном распределении, линейное зондирование может оказаться медленнее других стратегий открытой адресации, таких как Шаблон:Не переведено 5, которое пробует последовательность ячеек, разъединение которых определяется второй хеш-функцией, или Шаблон:Не переведено 5, когда размер каждого шага меняется в зависимости от позиции в последовательности проб{{#if: | }}<ref name="{{#if: | | _d59ea8041c414f82 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Анализ
При использовании линейного зондирования операции со словарём могут быть имплементированы с постоянным ожидаемым временем доступа. Другими словами, операции вставки, удаления и поиска могут быть имплементированы за O(1), при условии, что коэффициент загрузки хеш-таблицы является константой, строго меньшей единицы{{#if: | }}<ref name="{{#if: | | _3b6bee1cc1c73ea0 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Подробнее, время для каждой отдельной операции (поиск, вставка или удаление) пропорционально длине непрерывного блока занятых ячеек, с которого операция начинается. Если все начальные ячейки равновозможны в хеш-таблице с Шаблон:Mvar ячейками, то максимальный блок Шаблон:Mvar занятых ячеек имеет вероятность Шаблон:Math содержать начальное положение поиска и займёт время Шаблон:Math, где бы ни находилась стартовая ячейка. Таким образом, ожидаемое время выполнения операции можно вычислить как произведение этих двух членов, Шаблон:Math, суммированных по всем максимальным блокам непрерывных ячеек в таблице. Похожая сумма квадратов длин блоков дают границу мат. ожидания времени для случайной хеш-функции (а не случайное стартовое положение в хеш-таблице) путём суммирования по всем блокам, которые могут существовать (а не по тем, которые фактически существуют в текущем состоянии таблицы) и умножения членов для каждого потенциального блока на вероятность, что блок занят. То есть, если определить Шаблон:Math как событие, что имеется максимальный непрерывный блок занятых ячеек длины Шаблон:Mvar, начинающийся с индекса Шаблон:Mvar, мат. ожидание времени на операцию равно
- [math]\displaystyle{ E[T]=O(1) + \sum_{i=1}^N \sum_{k=1}^n O(k^2/N) \operatorname{Pr}[\operatorname{Block}(i,k)]. }[/math]
Формулу можно упростить путём замены Шаблон:Math by a simpler necessary condition Шаблон:Math, the event that at least Шаблон:Mvar elements have hash values that lie within a block of cells of length Шаблон:Mvar. After this replacement, the value within the sum no longer depends on Шаблон:Mvar, and the Шаблон:Math factor cancels the Шаблон:Mvar terms of the outer summation. Эти упрощения приводят к границе
- [math]\displaystyle{ E[T] \le O(1) + \sum_{k=1}^n O(k^2) \operatorname{Pr}[\operatorname{Full}(k)]. }[/math]
Но, согласно мультипликативной форме границы Чернова, если коэффициент загрузки строго меньше единицы, вероятность, что длина блока Шаблон:Mvar содержит по меньшей мере Шаблон:Mvar хешированных значений, является экспоненциально малой как функция от Шаблон:Mvar, что означает, что сумма ограничена константой, не зависящей от Шаблон:Mvar{{#if: | }}<ref name="{{#if: | | _bc47cb63eb252b81 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Можно также провести тот же анализ с помощью формулы Стирлинга вместо границы Чернова, чтобы оценить вероятность того, что блок содержит в точности Шаблон:Mvar хешированных значений{{#if: | }}<ref name="{{#if: | | _299e3fcdac27c0d7 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _999557e8f76b3305 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
В терминах коэффициента загрузки Шаблон:Mvar ожидаемое время успешного поиска равно Шаблон:Math, а ожидаемое время неуспешного поиска (или вставки нового ключа) равно Шаблон:Math {{#if: | }}<ref name="{{#if: | | _6a631b459185239c }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Для постоянного коэффициента загрузки, с большой вероятностью, самая длинная последовательность зондирования (среди последовательностей зондирования для всех ключей из таблицы) имеет логарифмическую длину{{#if: | }}<ref name="{{#if: | | _d5e5d84c1611ca6f }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Выбор Хеш-функции
Поскольку линейное зондирование очень чувствительно для неравномерно распределённых значений хеш-функций{{#if: | }}<ref name="{{#if: | | _d59ea8041c414f82 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}, важно комбинировать метод с хеш-функцией высокого качества, которая не даёт такую неравномерность.
Анализ, приведённый выше, предполагает, что хеш каждого ключа является случайным числом, не зависящим от хешей других ключей. Это предположение нереалистично для большинства приложений с хешированием. Однако случайные или псевдослучайные хеш-значения могут быть использованы, когда объекты хешируются по их идентификатору, а не по значению. Например, так сделано с использованием линейного зондирования с помощью класса IdentityHashMap в наборе классов и интерфейсов Java collections framework{{#if: | }}<ref name="{{#if: | | _dc533c0c6d6a6b18 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Значение хеша, который этот класс ассоциирует с каждым объектом, его identityHashCode, гарантированно остаётся неизменным для объекта на протяжении его жизни, но хеш-значение для такого же объекта в других обстоятельствах будет другим{{#if: | }}<ref name="{{#if: | | _442f1088d6442614 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Поскольку identityHashCode строится только раз для каждого объекта и не требуется его связь со значением или адресом объекта, его построение может использовать более медленные вычислительные средства, такие как вызов случайных или псевдослучайных генераторов чисел. Например, Java 8 для построения таких значений использует псевдослучайный числовой генератор Xorshift{{#if: | }}<ref name="{{#if: | | _24f4112c7212d86b }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Для большинства приложений хеширования необходимо вычислять хеш-функцию для каждого значения каждый раз, когда требуется хеш, а не один раз, когда объект создаётся. В таких приложениях случайные или псевдослучайные числа не могут быть использованы в качестве хеш-значений, поскольку тогда различные объекты с тем же значением могли бы иметь различные значения хеша. А криптографические хеш-функции (которые создаются так, что они неотличимы от истинно случайных функций) обычно слишком медленны для использования в хеш-таблицах{{#if: | }}<ref name="{{#if: | | _3e3fcf468c895136 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Вместо этого используются другие методы для построения хеш-функций. Эти методы вычисляют хеш-функцию быстро, и можно доказать, что они хорошо работают с линейным зондированием. В частности, линейное зондирование было проанализировано в рамках Шаблон:Не переведено 5, классе хеш-функций, которые инициализируются небольшим случайным числом с равной возможностью отображают любой Шаблон:Mvar-кортеж различных ключей в любой Шаблон:Mvar-кортеж индексов. Параметр Шаблон:Mvar может рассматриваться как мера качества хеш-функции — чем больше Шаблон:Mvar, тем больше времени нужно для вычисления хеш-функции, но она будет вести себя ближе к полностью случайным функциям. Для линейного зондирования 5-независимость достаточна, чтобы гарантировать постоянное ожидаемое время на операцию{{#if: | }}<ref name="{{#if: | | _c6b16e11530cb9ca }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}, в то время как некоторые 4-независимые хеш-функции работают плохо, требуя логарифмического времени на операцию{{#if: | }}<ref name="{{#if: | | _7e37736907e4c6ab }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Другой метод построения хеш-функций с высоким качеством и приемлемой скоростью — Шаблон:Не переведено 5. В этом методе значение хеша для ключа вычисляется путём выбора для каждого байта ключа индекса в таблице случайных чисел (с различными таблицами для каждой позиции байта). Числа из ячеек этих таблиц затем комбинируются побитно с помощью операции «исключающее ИЛИ». Хеш-функции, построенные таким образом, только 3-независимы. Тем не менее, линейные зондирования, использующие эти хеш-функции, требуют постоянного ожидаемого времени на операцию{{#if: | }}<ref name="{{#if: | | _299e3fcdac27c0d7 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _ade3a3bd736fc931 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Как табличное хеширование, так и стандартные методы генерации 5-независимых хеш-функций лимитированы ключами, которые имеют фиксированное число бит. Для работы со строками или другими типами ключей переменной длины, можно Шаблон:Не переведено 5 более простую технику универсального хеширования, которая отображает ключи в промежуточные значения, с высокого качества (5-независимость или табуляция) хеш-функцией, которая отображает промежуточные значения в индексы хеш-таблицы{{#if: | }}<ref name="{{#if: | | _0ba5c855cce046c8 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _6847b2eb796d1c85 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
В экспериментальных сравнениях Рихтер и др. нашли, что семейство хеш-функций с кратным сдвигом (определённых как [math]\displaystyle{ h_z(x)=(x \cdot z \bmod 2^w) \div 2^{w-d} }[/math]) было «наиболее быстрой хеш-функцией при использовании во всех схемах хеширования, то есть дающая самую высокую пропускную способность, а также хорошее качество», в то время как табличное хеширование давало «самую низкую пропускную способность»{{#if: | }}<ref name="{{#if: | | _1714a927cbe46118 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Они указали, что просмотр каждой таблицы требует несколько циклов, что более накладно, чем простые арифметические операции. Они также обнаружили, что MurmurHash лучше, чем табличное хеширование: «После изучения результатов, представленных Мультом и Мурмуром, мы думаем, что замена на табуляцию (…) на практике менее привлекательна».
История
Идея ассоциативного массива, которая позволяет получить доступ к данным по их значению, а не через их адрес, восходит к середине 1940-х годов к работам Конрада Цузе и Вэнивара Буша{{#if: | }}<ref name="{{#if: | | _0384320129700c58 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}, но хеш-таблицы не были описаны, пока их не описал Шаблон:Не переведено 5 в меморандуме IBM в 1953. Лун использовал другой метод разрешения коллизий, связь в цепочки, а не линейное зондирование{{#if: | }}<ref name="{{#if: | | _2a0179c59e721fdf }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Дональд Кнут{{#if: | }}<ref name="{{#if: | | _3b6bee1cc1c73ea0 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }} суммировал раннюю историю линейного зондирования. Это был первый метод открытой адресации и он был сначала синонимом открытой адресации. Согласно Кнуту, метод первым использовали Джин Амдал, Шаблон:Не переведено 5 и Артур Сэмюэл в 1954 в ассемблерной программе для IBM 701{{#if: | }}<ref name="{{#if: | | _3b6bee1cc1c73ea0 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Первое опубликованное описание линейного зондирования дал Петерсон{{#if: | }}<ref name="{{#if: | | _df626a1cf1934651 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _3b6bee1cc1c73ea0 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}, они же упомянули Сэмюэля, Амдала и МакГроу, но добавили, что «система столь естественна, что вполне вероятно, что могла быть независимо создана другими до или в то же время»{{#if: | }}<ref name="{{#if: | | _2bda4155572adbff }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Другая ранняя публикация этого метода принадлежит советскому исследователю Андрею Петровичу Ершову, вышедшая в 1958{{#if: | }}<ref name="{{#if: | | _42d1d116ecb81813 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Первый теоретический анализ линейного зондирования, показывающий, что метод работает за постоянное ожидаемое время на операцию со случайной хеш-функцией, дал Кнут{{#if: | }}<ref name="{{#if: | | _3b6bee1cc1c73ea0 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Седжвик назвал работу Кнута «вехой в анализе алгоритмов»{{#if: | }}<ref name="{{#if: | | _6a631b459185239c }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Существенно позже исследования привели к более детальному анализу распределения вероятностей времени работы{{#if: | }}<ref name="{{#if: | | _38edaf3faaeeea3c }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _82d498cba85b6588 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }} и доказательство, что линейное зондирование работает за постоянное время на операцию с удобной для практических вычислений хеш-функцией, а не с идеальной случайной функцией, предполагаемой в ранних анализах{{#if: | }}<ref name="{{#if: | | _c6b16e11530cb9ca }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _ade3a3bd736fc931 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.
Примечания
| {{#switch: 25em
| узкие = columns reflist-narrow
| широкие = columns reflist-wide
| #default = columns
}}
| {{#switch: 25em
| 1 =
| 2 | 3 = columns
| #default = columns reflist-narrow
}}
}}
| columns
}}
}}" style="{{#if:
| column-width:{{{colwidth}}};
| {{#if: 25em
| {{#iferror: {{#ifexpr: 25em > 1 }}
| {{#switch: 25em
| узкие | широкие =
| #default = column-width:25em;
}}
}}
}}
}} list-style-type: {{#switch:
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group}}}
| #default = decimal
}};">
<references group="" responsive="{{#if:
| 0
| {{#if: 25em
| {{#iferror: {{#expr: 25em > 1 }}
| {{#switch: 25em
| узкие | широкие = 1
| #default = 0
}}
| {{#switch: 25em
| 1 = 0
| #default = 1
}}
}}
| 1
}}
}}"></references>Ошибка скрипта: Модуля «Check for unknown parameters» не существует.
Литература
- {{#if:David Eppstein|David Eppstein
}}{{#if:
| [{{{ссылка}}} Linear probing made easy]
| Linear probing made easy
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:|и}}
|аи= // {{{автор издания}}} {{{издание}}}
|а= // {{{автор издания}}}
|и= // {{{издание}}}
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:2011|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 2011.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2011.
|иг= — {{{издательство}}}, 2011.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 2011.
}}{{#if:| — В. {{{выпуск}}}.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:| — Т. {{{том}}}.
}}{{#if:| — № {{{номер}}}.
}}{{#if:| — С. {{{страницы}}}. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- {{#if:Donald Knuth|Donald Knuth
| Notes on "Open" Addressing | Notes on "Open" Addressing
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:|и}}
|аи= // {{{автор издания}}} {{{издание}}}
|а= // {{{автор издания}}}
|и= // {{{издание}}}
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:1963|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 1963.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 1963.
|иг= — {{{издательство}}}, 1963.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 1963.
}}{{#if:| — В. {{{выпуск}}}.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:| — Т. {{{том}}}.
}}{{#if:| — № {{{номер}}}.
}}{{#if:| — С. {{{страницы}}}. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- {{#if:Gregory L. Heileman, Wenbin Luo|Gregory L. Heileman, Wenbin Luo }}{{#if: How caching affects hashing|{{#if: |[{{{ссылка часть}}} How caching affects hashing]| How caching affects hashing}} // }}{{#if:|[[:s:{{{викитека}}}|Proceedings of the Seventh Workshop on Algorithm Engineering and Experiments and the Second Workshop on Analytic Algorithmics and Combinatorics]]|{{#if:http://www.siam.org/meetings/alenex05/papers/13gheileman.pdf%7CProceedings of the Seventh Workshop on Algorithm Engineering and Experiments and the Second Workshop on Analytic Algorithmics and Combinatorics|Proceedings of the Seventh Workshop on Algorithm Engineering and Experiments and the Second Workshop on Analytic Algorithmics and Combinatorics}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Proceedings of the Seventh Workshop on Algorithm Engineering and Experiments and the Second Workshop on Analytic Algorithmics and Combinatorics|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:Society for Industrial & Applied Mathematics,U.S.|и}}{{#if:2005|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Society for Industrial & Applied Mathematics,U.S., 2005.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Society for Industrial & Applied Mathematics,U.S..
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2005.
|иг= — Society for Industrial & Applied Mathematics,U.S., 2005.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Society for Industrial & Applied Mathematics,U.S..
|г= — 2005.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:141–154| — С. 141–154.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:| — ISBN {{{isbn}}}}}
- {{#if:Michael T. Goodrich, Roberto Tamassia|Michael T. Goodrich, Roberto Tamassia }}{{#if: Section 6.3.3: Linear Probing|{{#if: |[{{{ссылка часть}}} Section 6.3.3: Linear Probing]| Section 6.3.3: Linear Probing}} // }}{{#if:|[[:s:{{{викитека}}}|Algorithm Design and Applications]]|{{#if:|[{{{ссылка}}} Algorithm Design and Applications]|Algorithm Design and Applications}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Algorithm Design and Applications|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:Wiley|и}}{{#if:2015|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Wiley, 2015.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Wiley.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2015.
|иг= — Wiley, 2015.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Wiley.
|г= — 2015.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:200–203| — С. 200–203.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:978-1-118-33591-8| — ISBN 978-1-118-33591-8}}
- {{#if:Robert Sedgewick|Robert Sedgewick }}{{#if: Section 14.3: Linear Probing|{{#if: |[{{{ссылка часть}}} Section 14.3: Linear Probing]| Section 14.3: Linear Probing}} // }}{{#if:|[[:s:{{{викитека}}}|Algorithms in Java, Parts 1–4: Fundamentals, Data Structures, Sorting, Searching]]|{{#if:|[{{{ссылка}}} Algorithms in Java, Parts 1–4: Fundamentals, Data Structures, Sorting, Searching]|Algorithms in Java, Parts 1–4: Fundamentals, Data Structures, Sorting, Searching}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Algorithms in Java, Parts 1–4: Fundamentals, Data Structures, Sorting, Searching|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:Addison Wesley|и}}{{#if:2003|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Addison Wesley, 2003.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Addison Wesley.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2003.
|иг= — Addison Wesley, 2003.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Addison Wesley.
|г= — 2003.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:615–620| — С. 615–620.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:9780321623973| — ISBN 9780321623973}}
- {{#if:Robert Sedgewick, Kevin Wayne|Robert Sedgewick, Kevin Wayne }}{{#if: |{{#if: |[{{{ссылка часть}}} {{{часть}}}]| {{{часть}}}}} // }}{{#if:|[[:s:{{{викитека}}}|Алгоритмы]]|{{#if:https://books.google.com/books?id=MTpsAQAAQBAJ&pg=PA471%7CАлгоритмы|Алгоритмы}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Алгоритмы|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:4th| — 4th.}}{{#switch:{{#if:|м}}{{#if:Addison-Wesley Professional|и}}{{#if:2011|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Addison-Wesley Professional, 2011.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Addison-Wesley Professional.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2011.
|иг= — Addison-Wesley Professional, 2011.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Addison-Wesley Professional.
|г= — 2011.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:| — С. {{{страницы}}}.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:9780321573513| — ISBN 9780321573513}}
- {{#if:Pittel B.|Pittel B.
}}{{#if:
| [{{{ссылка}}} Linear probing: the probable largest search time grows logarithmically with the number of records]
| Linear probing: the probable largest search time grows logarithmically with the number of records
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:Journal of Algorithms|и}}
|аи= // {{{автор издания}}} Journal of Algorithms
|а= // {{{автор издания}}}
|и= // Journal of Algorithms
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:1987|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 1987.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 1987.
|иг= — {{{издательство}}}, 1987.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 1987.
}}{{#if:2| — В. 2.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:8| — Т. 8.
}}{{#if:| — № {{{номер}}}.
}}{{#if:236–249| — С. 236–249. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:10.1016/0196-6774(87)90040-X| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- Шаблон:Cite web
- {{#if:Jeff Friesen|Jeff Friesen }}{{#if: |{{#if: |[{{{ссылка часть}}} {{{часть}}}]| {{{часть}}}}} // }}{{#if:|[[:s:{{{викитека}}}|Beginning Java 7]]|{{#if:https://books.google.com/books?id=CwSaQpCtfPkC&pg=PA376%7CBeginning Java 7|Beginning Java 7}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Beginning Java 7|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:Apress|и}}{{#if:2012|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Apress, 2012.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Apress.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2012.
|иг= — Apress, 2012.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Apress.
|г= — 2012.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:376| — С. 376.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:Expert's voice in Java| — (Expert's voice in Java).}}{{#if:| — Шаблон:Nobr}}{{#if:9781430239109| — ISBN 9781430239109}}
- {{#if:Heinz M. Kabutz|Heinz M. Kabutz
}}{{#if:http://www.javaspecialists.eu/archive/Issue222.html
| Identity Crisis | Identity Crisis
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:The Java Specialists' Newsletter|и}}
|аи= // {{{автор издания}}} The Java Specialists' Newsletter
|а= // {{{автор издания}}}
|и= // The Java Specialists' Newsletter
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:2014|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 2014.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2014.
|иг= — {{{издательство}}}, 2014.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 2014.
}}{{#if:| — В. {{{выпуск}}}.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:222| — Т. 222.
}}{{#if:| — № {{{номер}}}.
}}{{#if:| — С. {{{страницы}}}. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- {{#if:Mark Allen Weiss|Mark Allen Weiss }}{{#if: Chapter 3: Data Structures|{{#if: |[{{{ссылка часть}}} Chapter 3: Data Structures]| Chapter 3: Data Structures}} // }}{{#if:|[[:s:{{{викитека}}}|Computing Handbook]]|{{#if:https://books.google.com/books?id=wyHSBQAAQBAJ&pg=SA3-PA11%7CComputing Handbook|Computing Handbook}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Computing Handbook|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:3rd| — 3rd.}}{{#switch:{{#if:|м}}{{#if:CRC Press|и}}{{#if:2014|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: CRC Press, 2014.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: CRC Press.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2014.
|иг= — CRC Press, 2014.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — CRC Press.
|г= — 2014.
}}{{#if:| — {{{том как есть}}}.}}{{#if:1| — Т. 1.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:3—11| — С. 3—11.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:9781439898536| — ISBN 9781439898536}}
- {{#if:Pat Morin|Pat Morin }}{{#if: Section 5.2: LinearHashTable: Linear Probing|{{#if: |[{{{ссылка часть}}} Section 5.2: LinearHashTable: Linear Probing]| Section 5.2: LinearHashTable: Linear Probing}} // }}{{#if:|[[:s:{{{викитека}}}|Open Data Structures (in pseudocode)]]|{{#if:http://opendatastructures.org/%7COpen Data Structures (in pseudocode)|Open Data Structures (in pseudocode)}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Open Data Structures (in pseudocode)|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:|и}}{{#if:2014|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 2014.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2014.
|иг= — {{{издательство}}}, 2014.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 2014.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:108–116| — С. 108–116.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:| — ISBN {{{isbn}}}}}
- {{#if:Anna Pagh, Rasmus Pagh, Milan Ružić|Anna Pagh, Rasmus Pagh, Milan Ružić
}}{{#if:
| [{{{ссылка}}} Linear probing with constant independence]
| Linear probing with constant independence
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:SIAM Journal on Computing|и}}
|аи= // {{{автор издания}}} SIAM Journal on Computing
|а= // {{{автор издания}}}
|и= // SIAM Journal on Computing
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:2009|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 2009.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2009.
|иг= — {{{издательство}}}, 2009.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 2009.
}}{{#if:3| — В. 3.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:39| — Т. 39.
}}{{#if:| — № {{{номер}}}.
}}{{#if:1107–1120| — С. 1107–1120. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:10.1137/070702278| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- {{#if:Mihai Pătrașcu, Mikkel Thorup|Mihai Pătrașcu, Mikkel Thorup }}{{#if: On the Шаблон:Mvar-independence required by linear probing and minwise independence|{{#if: |[{{{ссылка часть}}} On the Шаблон:Mvar-independence required by linear probing and minwise independence]| On the Шаблон:Mvar-independence required by linear probing and minwise independence}} // }}{{#if:|[[:s:{{{викитека}}}|Automata, Languages and Programming, 37th International Colloquium, ICALP 2010, Bordeaux, France, July 6–10, 2010, Proceedings, Part I]]|{{#if:http://people.csail.mit.edu/mip/papers/kwise-lb/kwise-lb.pdf%7CAutomata, Languages and Programming, 37th International Colloquium, ICALP 2010, Bordeaux, France, July 6–10, 2010, Proceedings, Part I|Automata, Languages and Programming, 37th International Colloquium, ICALP 2010, Bordeaux, France, July 6–10, 2010, Proceedings, Part I}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Automata, Languages and Programming, 37th International Colloquium, ICALP 2010, Bordeaux, France, July 6–10, 2010, Proceedings, Part I|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:Springer|и}}{{#if:2010|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Springer, 2010.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Springer.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2010.
|иг= — Springer, 2010.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Springer.
|г= — 2010.
}}{{#if:| — {{{том как есть}}}.}}{{#if:6198| — Т. 6198.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:715–726| — С. 715–726.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:Lecture Notes in Computer Science| — (Lecture Notes in Computer Science).}}{{#if:| — Шаблон:Nobr}}{{#if:| — ISBN {{{isbn}}}}}
- {{#if:Mihai Pătrașcu, Mikkel Thorup|Mihai Pătrașcu, Mikkel Thorup }}{{#if: The power of simple tabulation hashing|{{#if: |[{{{ссылка часть}}} The power of simple tabulation hashing]| The power of simple tabulation hashing}} // }}{{#if:|[[:s:{{{викитека}}}|Proceedings of the 43rd annual ACM Symposium on Theory of Computing (STOC '11)]]|{{#if:|[{{{ссылка}}} Proceedings of the 43rd annual ACM Symposium on Theory of Computing (STOC '11)]|Proceedings of the 43rd annual ACM Symposium on Theory of Computing (STOC '11)}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Proceedings of the 43rd annual ACM Symposium on Theory of Computing (STOC '11)|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:|и}}{{#if:2011|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 2011.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2011.
|иг= — {{{издательство}}}, 2011.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 2011.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:1–10| — С. 1–10.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:| — ISBN {{{isbn}}}}}
- {{#if:Mikkel Thorup, Yin Zhang|Mikkel Thorup, Yin Zhang
}}{{#if:
| [{{{ссылка}}} Tabulation-based 5-independent hashing with applications to linear probing and second moment estimation]
| Tabulation-based 5-independent hashing with applications to linear probing and second moment estimation
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:SIAM Journal on Computing|и}}
|аи= // {{{автор издания}}} SIAM Journal on Computing
|а= // {{{автор издания}}}
|и= // SIAM Journal on Computing
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:2012|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 2012.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2012.
|иг= — {{{издательство}}}, 2012.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 2012.
}}{{#if:2| — В. 2.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:41| — Т. 41.
}}{{#if:| — № {{{номер}}}.
}}{{#if:293–331| — С. 293–331. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:10.1137/100800774| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- {{#if:Mikkel Thorup|Mikkel Thorup }}{{#if: String hashing for linear probing|{{#if: |[{{{ссылка часть}}} String hashing for linear probing]| String hashing for linear probing}} // }}{{#if:|[[:s:{{{викитека}}}|Proceedings of the Twentieth Annual ACM-SIAM Symposium on Discrete Algorithms]]|{{#if:|[{{{ссылка}}} Proceedings of the Twentieth Annual ACM-SIAM Symposium on Discrete Algorithms]|Proceedings of the Twentieth Annual ACM-SIAM Symposium on Discrete Algorithms}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Proceedings of the Twentieth Annual ACM-SIAM Symposium on Discrete Algorithms|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:Philadelphia, PA|м}}{{#if:SIAM|и}}{{#if:2009|г}}
|миг= — {{#if:Philadelphia, PA|{{#switch:Philadelphia, PA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Philadelphia, PA|Philadelphia, PA}} }}: SIAM, 2009.
|ми= — {{#if:Philadelphia, PA|{{#switch:Philadelphia, PA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Philadelphia, PA|Philadelphia, PA}} }}: SIAM.
|мг= — {{#if:Philadelphia, PA|{{#switch:Philadelphia, PA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Philadelphia, PA|Philadelphia, PA}} }}, 2009.
|иг= — SIAM, 2009.
|м= — {{#if:Philadelphia, PA|{{#switch:Philadelphia, PA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Philadelphia, PA|Philadelphia, PA.}} }}
|и= — SIAM.
|г= — 2009.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:655–664| — С. 655–664.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:| — ISBN {{{isbn}}}}}
- {{#if:Stefan Richter, Victor Alvarez, Jens Dittrich|Stefan Richter, Victor Alvarez, Jens Dittrich
}}{{#if:
| [{{{ссылка}}} A seven-dimensional analysis of hashing methods and its implications on query processing]
| A seven-dimensional analysis of hashing methods and its implications on query processing
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:Proceedings of the VLDB Endowment|и}}
|аи= // {{{автор издания}}} Proceedings of the VLDB Endowment
|а= // {{{автор издания}}}
|и= // Proceedings of the VLDB Endowment
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:2015|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 2015.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2015.
|иг= — {{{издательство}}}, 2015.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 2015.
}}{{#if:3| — В. 3.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:9| — Т. 9.
}}{{#if:| — № {{{номер}}}.
}}{{#if:293–331| — С. 293–331. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- {{#if:Behrooz Parhami|Behrooz Parhami }}{{#if: |{{#if: |[{{{ссылка часть}}} {{{часть}}}]| {{{часть}}}}} // }}{{#if:|[[:s:{{{викитека}}}|Introduction to Parallel Processing: Algorithms and Architectures]]|{{#if:https://books.google.com/books?id=iNQLBwAAQBAJ&pg=PA67%7CIntroduction to Parallel Processing: Algorithms and Architectures|Introduction to Parallel Processing: Algorithms and Architectures}}}}{{#if:| = {{{оригинал}}} }}{{#if:| / {{{ответственный}}}.|{{#if:||.}}}}{{#if:Introduction to Parallel Processing: Algorithms and Architectures|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:Springer|и}}{{#if:2006|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Springer, 2006.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Springer.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2006.
|иг= — Springer, 2006.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Springer.
|г= — 2006.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:67 4.1 Development of early models| — С. 67 4.1 Development of early models.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:Series in Computer Science| — (Series in Computer Science).}}{{#if:| — Шаблон:Nobr}}{{#if:9780306469640| — ISBN 9780306469640}}
- {{#if:Pat Morin|Pat Morin }}{{#if: Hash tables|{{#if: |[{{{ссылка часть}}} Hash tables]| Hash tables}} // }}{{#if:|[[:s:{{{викитека}}}|Handbook of Data Structures and Applications]]|{{#if:https://books.google.com/books?id=fQVZy1zcpJkC&pg=SA9-PA15%7CHandbook of Data Structures and Applications|Handbook of Data Structures and Applications}}}}{{#if:| = {{{оригинал}}} }}{{#if:Dinesh P. Mehta, Sartaj Sahni| / Dinesh P. Mehta, Sartaj Sahni.|{{#if:||.}}}}{{#if:Handbook of Data Structures and Applications|{{#if:| {{#if:| = {{{оригинал2}}} }}{{#if:| / {{{ответственный2}}}.|{{#if:||.}}}}}}}}{{#if:| — {{{издание}}}.}}{{#switch:{{#if:|м}}{{#if:Chapman & Hall / CRC|и}}{{#if:2004|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Chapman & Hall / CRC, 2004.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: Chapman & Hall / CRC.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 2004.
|иг= — Chapman & Hall / CRC, 2004.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — Chapman & Hall / CRC.
|г= — 2004.
}}{{#if:| — {{{том как есть}}}.}}{{#if:| — Т. {{{том}}}.}}{{#if:| — Vol. {{{volume}}}.}}{{#if:| — B. {{{band}}}.}}{{#if:| — {{{страницы как есть}}}.}}{{#if:9—15| — С. 9—15.}}{{#if:| — {{{страниц как есть}}}.}}{{#if:| — {{{страниц}}} с.}}{{#if:| — P. {{{pages}}}.}}{{#if:| — S. {{{seite}}}.}}{{#if:| — p.}}{{#if:| — s.}}{{#if:| — ({{{серия}}}).}}{{#if:| — Шаблон:Nobr}}{{#if:9781420035179| — ISBN 9781420035179}}
- {{#if:Peterson W. W.|Peterson W. W.
}}{{#if:
| [{{{ссылка}}} Addressing for random-access storage]
| Addressing for random-access storage
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:IBM Journal of Research and Development|и}}
|аи= // {{{автор издания}}} IBM Journal of Research and Development
|а= // {{{автор издания}}}
|и= // IBM Journal of Research and Development
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:Riverton, NJ, USA|м}}{{#if:IBM Corp.|и}}{{#if:1957|г}}
|миг= — {{#if:Riverton, NJ, USA|{{#switch:Riverton, NJ, USA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Riverton, NJ, USA|Riverton, NJ, USA}} }}: IBM Corp., 1957.
|ми= — {{#if:Riverton, NJ, USA|{{#switch:Riverton, NJ, USA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Riverton, NJ, USA|Riverton, NJ, USA}} }}: IBM Corp..
|мг= — {{#if:Riverton, NJ, USA|{{#switch:Riverton, NJ, USA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Riverton, NJ, USA|Riverton, NJ, USA}} }}, 1957.
|иг= — IBM Corp., 1957.
|м= — {{#if:Riverton, NJ, USA|{{#switch:Riverton, NJ, USA|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.=Шаблон:Riverton, NJ, USA|Riverton, NJ, USA.}} }}
|и= — IBM Corp..
|г= — 1957.
}}{{#if:2| — В. 2.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:1| — Т. 1.
}}{{#if:| — № {{{номер}}}.
}}{{#if:130–146| — С. 130–146. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:10.1147/rd.12.0130| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}. Другая ранняя публикация этого метода принадлежит советскому исследователю Ершову А. П., in 1958.
- {{#if:А. П. Ершов|А. П. Ершов
}}{{#if:
| [{{{ссылка}}} {{{заглавие}}}]
| {{{заглавие}}}
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:Доклады АН УССР|и}}
|аи= // {{{автор издания}}} Доклады АН УССР
|а= // {{{автор издания}}}
|и= // Доклады АН УССР
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:1958|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 1958.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 1958.
|иг= — {{{издательство}}}, 1958.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 1958.
}}{{#if:118 (3)| — В. 118 (3).
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:| — Т. {{{том}}}.
}}{{#if:| — № {{{номер}}}.
}}{{#if:427–430| — С. 427–430. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}. Линейное зондирование описано как алгоритм A2.
- {{#if:Flajolet P., Poblete P., Viola A.|Flajolet P., Poblete P., Viola A.
}}{{#if:
| [{{{ссылка}}} On the analysis of linear probing hashing]
| On the analysis of linear probing hashing
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:Algorithmica|и}}
|аи= // {{{автор издания}}} Algorithmica
|а= // {{{автор издания}}}
|и= // Algorithmica
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:1998|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 1998.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 1998.
|иг= — {{{издательство}}}, 1998.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 1998.
}}{{#if:4| — В. 4.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:22| — Т. 22.
}}{{#if:| — № {{{номер}}}.
}}{{#if:490–515| — С. 490–515. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:10.1007/PL00009236| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
}}
- {{#if:Donald Knuth|Donald Knuth
}}{{#if:
| [{{{ссылка}}} Linear probing and graphs]
| Linear probing and graphs
}}{{#if:
| {{#ifexist: Шаблон:ref-{{{language}}}
| {{ref-{{{language}}}}}
| ({{{language}}})
}}
}}{{#if:| = {{{оригинал}}} }}{{#switch:{{#if:|а}}{{#if:Algorithmica|и}}
|аи= // {{{автор издания}}} Algorithmica
|а= // {{{автор издания}}}
|и= // Algorithmica
}}{{#if:| : {{{тип}}} }}{{#if:| / {{{ответственный}}} }}.{{#switch:{{#if:|м}}{{#if:|и}}{{#if:1998|г}}
|миг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}, 1998.
|ми= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}: {{{издательство}}}.
|мг= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}}} }}, 1998.
|иг= — {{{издательство}}}, 1998.
|м= — {{#if:{{{место}}}|{{#switch:{{{место}}}|L.|N. Y.|P.|Б.|Б. м.|Ер.|Иер.|К.|Каз.|Л.|М.|Мн.|Н. Н.|Н. Новгород|Пг.|Ростов н/Д|СПб.|Тб.|Тф.|Яр.={{ {{{место}}} }}|{{{место}}}.}} }}
|и= — {{{издательство}}}.
|г= — 1998.
}}{{#if:4| — В. 4.
}}{{#if:| — Vol. {{{volume}}}. }}{{#if:| — Band {{{band}}}. }}{{#if:22| — Т. 22.
}}{{#if:| — № {{{номер}}}.
}}{{#if:561–568| — С. 561–568. }}{{#if:| — P. {{{pages}}}. }}{{#if: | — S.</nowiki> {{{seite}}}.
}}{{#if:| — ISBN {{{isbn}}}. }}{{#if:| — ISSN Шаблон:ISSN search link. }}{{#if:10.1007/PL00009240| — Шаблон:DOI }}{{#if:| — Шаблон:Bibcode }}{{#if:| — Шаблон:Arxiv }}{{#if: | — PMID {{{pmid}}}. }}{{#if:
| [{{{archiveurl}}} Архивировано] из первоисточника {{#iferror: {{#time: j xg Y | {{{archivedate}}}}} | {{{archivedate}}}}}.
}}{{#if:
|
}}{{#if:
|
