Редактирование: Quotient filter

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 47: Строка 47:
  
 
Пусть мы ищем ключ <tex>K</tex>. Смотрим в ячейку с индексом <tex>h_q</tex>, это каноническая ячейка для частного <tex>h_q</tex>. Если в этой ячейке бит занятости не единица, то элемент точно не содержится в множестве.
 
Пусть мы ищем ключ <tex>K</tex>. Смотрим в ячейку с индексом <tex>h_q</tex>, это каноническая ячейка для частного <tex>h_q</tex>. Если в этой ячейке бит занятости не единица, то элемент точно не содержится в множестве.
Если бит занятости единица, то нам нужно найти пробег для <tex>h_q</tex>. Так как начало нужного пробега может быть сдвинуто, найдем начало кластера. Идем влево от ячейки с индексом <tex>h_q</tex> и ищем первую с битом сдвига равным нулю, эта ячейка и будет началом кластера. Пока мы идем влево от ячейки с индексом <tex>h_q</tex> будем поддерживать счетчик, который бедет показывать сколько пробегов нам нужно будет пропустить от начала кластера. Каждая ячейка с битом занятости равным единице увеличивает счетчик на <tex>1</tex>. После того как мы нашли начало кластера, пойдем от него вправо, каждая ячейка с битом продолжения равным нулю говорит о завершении пробега, когда счетчик станет равным нулю мы найдем нужный нам пробег для частного <tex>h_q</tex>. Если в этом пробеге содержится <tex>h_r</tex>, то <tex>K</tex>, вероятно, содержится в множестве, иначе <tex>K</tex> точно не содержится в множестве.
+
Если бит занятости единица, то нам нужно найти пробег для <tex>h_q</tex>. Так как начало нужного пробега может быть сдвинуто, найдем начало кластера. Идем влево от ячейки с индексом <tex>h_q</tex> и ищем первую с битом сдвига равным нулю, эта ячейка и будет началом кластера. Пока мы идем влево от ячейки с индексом <tex>h_q</tex> будем поддерживать счетчик, который бедет показывать сколько пробегов нам нужно будет пропустить от начала кластера. Каждая ячейка с битом занятости равным единице увеличивает счетчик на <tex>1</tex>. После того как мы нашли начало кластера, пойдем от него влево, каждая ячейка с битом продолжения равным нулю говорит о завершении пробега, когда счетчик станет равным нулю мы найдем нужный нам пробег для частного <tex>h_q</tex>. Если в этом пробеге содержится <tex>h_r</tex>, то <tex>K</tex>, вероятно, содержится в множестве, иначе <tex>K</tex> точно не содержится в множестве.
  
 
=== Вставка ===
 
=== Вставка ===

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: