Struct bio::data_structures::rank_select::RankSelect [] [src]

pub struct RankSelect { /* fields omitted */ }

A rank/select data structure.

Methods

impl RankSelect
[src]

Create a new instance.

Arguments

  • bits - A bit vector.
  • k - Determines the size (k * 32 bits) of the superblocks. A small k means faster rank query times at the expense of using more space and slower select query times. The data structure needs O(n + n log n / (k * 32)) bits with n being the bits of the given bitvector. The data structure is succinct if k is chosen as a sublinear function of n (e.g. k = (log n)² / 32).

Get the rank of a given bit, i.e. the number of 1-bits in the bitvector up to i (inclusive). Complexity: O(k).

Arguments

  • i - Position of the bit to determine the rank for.

Get the smallest bit with a given rank. Complexity: O(log (n / k) + k).

Arguments

  • j - The rank to find the smallest bit for.