Years and Authors of Summarized Original Work
1974; Elias
1989; Jacobson
1998; Clark
2007; Raman, Raman, Rao
2008; PÇŽtraÅŸcu
2014; Golynski, Orlandi, Raman, Rao
Problem Definition
Given a static bit string \(\boldsymbol{b} = b_{1}\ldots b_{m}\), the objective is to preprocess \(\boldsymbol{b}\) and to create a space-efficient data structure that supports the following operations rapidly:
- rank1 (i):
-
takes an index i as input, 1 ≤ i ≤ m, and returns the number of 1s among b1… b i .
- select1 (i):
-
takes an index i ≥ 1 as input and returns the position of the i-th 1 in \(\boldsymbol{b}\), and − 1 if i is greater than the number of 1s in \(\boldsymbol{b}\).
A data structure that supports the operations above will be called a bit vector. The operations rank0 and select0 are defined analogously for the 0s in \(\boldsymbol{b}\). As \(\textsf{rank}_{0}(i) = i -\textsf{rank}_{1}(i)\), one considers just rank1 (abbreviated to rank) and refers to select0 and select1 collectively as select. In what...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Recommended Reading
Arroyuelo D, Claude F, Maneth S, Mäkinen V, Navarro G, Nguyen K, Sirén J, Välimäki N (2015) Fast in-memory XPath search using compressed indexes. Softw Pract Exp 45(3):399–434
Clark DR (1998) Compact PAT trees. PhD thesis, University of Waterloo, Waterloo
Delpratt O, Rahman N, Raman R (2006) Engineering the LOUDS succinct tree representation. In: Àlvarez C, Serna MJ (eds) WEA. Lecture notes in computer science, vol 4007. Springer, Berlin/Heidelberg, pp 134–145
Delpratt O, Raman R, Rahman N (2008) Engineering succinct DOM. In: Kemper A, Valduriez P, Mouaddib N, Teubner J, Bouzeghoub M, Markl V, Amsaleg L, Manolescu I (eds) EDBT. ACM international conference proceeding series, vol 261. ACM, New York, pp 49–60
Elias P (1974) Efficient storage and retrieval by content and address of static files. J ACM 21:246–260
Ferragina P, Venturini R (2007) A simple storage scheme for strings achieving entropy bounds. Theor Comput Sci 372(1):115–121
Ferragina P, Luccio F, Manzini G, Muthukrishnan S (2009) Compressing and indexing labeled trees, with applications. J ACM 57(1)
Gog S, Beller T, Moffat A, Petri M (2014) From theory to practice: plug and play with succinct data structures. In: Gudmundsson J, Katajainen J (eds) Experimental algorithms – 13th international symposium, SEA 2014, Copenhagen, 29 June–1 July 2014. Proceedings. Lecture notes in computer science, vol 8504. Springer, Heidelberg, pp 326–337
Golynski A (2007) Optimal lower bounds for rank and select indexes. Theor Comput Sci 387(3):348–359
Golynski A, Raman R, Rao SS (2008) On the redundancy of succinct data structures. In: Gudmundsson J (ed) SWAT. Lecture notes in computer science, vol 5124. Springer, Heidelberg, pp 148–159
Golynski A, Orlandi A, Raman R, Rao SS (2014) Optimal indexes for sparse bit vectors. Algorithmica 69(4):906–924
Grossi R, Ottaviano G (2013) Design of practical succinct data structures for large data collections. In: Bonifaci V, Demetrescu C, Marchetti-Spaccamela A (eds) Experimental algorithms, 12th international symposium, SEA 2013, Rome, 5–7 June 2013. Proceedings. Lecture notes in computer science, vol 7933. Springer, Heidelberg/New York, pp 5–17
Hagerup T (1998) Sorting and searching on the word RAM. In: Morvan M, Meinel C, Krob D (eds) STACS 98, 15th annual symposium on theoretical aspects of computer science, Paris, 25–27 Feb 1998, Proceedings. Lecture notes in computer science, vol 1373. Springer, Berlin/New York, pp 366–398
Jacobson G (1989) Succinct static data structures. PhD thesis, Carnegie Mellon University, Pittsburgh
Li H, Durbin R (2009) Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics 25(14):1754–1760
Navarro G, Mäkinen V (2007) Compressed full-text indexes. ACM Comput Surv 39(1)
Pagh R (2001) Low redundancy in static dictionaries with constant query time. SIAM J Comput 31(2):353–363
Patrascu M (2008) Succincter. In: 49th annual IEEE symposium on foundations of computer science, FOCS 2008, Philadelphia, 25–28 Oct 2008. IEEE Computer Society, Los Alamitos, pp 305–313
Patrascu M, Thorup M (2006) Time-space trade-offs for predecessor search. In: Kleinberg JM (ed) Proceedings of the 38th annual ACM symposium on theory of computing, Seattle, 21–23 May 2006, ACM, New York, pp 232–240
Patrascu M, Viola E (2010) Cell-probe lower bounds for succinct partial sums. In: Charikar M (ed) Proceedings of the twenty-first annual ACM-SIAM symposium on discrete algorithms, SODA 2010, Austin, 17–19 Jan 2010. SIAM, Philadelphia, pp 117–122
Raman R, Raman V, Satti SR (2007) Succinct indexable dictionaries with applications to encoding k-ary trees, prefix sums and multisets. ACM Trans Algorithms 3(4):Article 43, 25pp
Tabei Y, Tsuda K (2011) Kernel-based similarity search in massive graph databases with wavelet trees. In: Proceedings of the eleventh SIAM international conference on data mining, SDM 2011, 28–30 Apr 2011, Mesa. SIAM/Omnipress, Philadelphia, pp 154–163
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer Science+Business Media New York
About this entry
Cite this entry
Raman, R. (2016). Rank and Select Operations on Bit Strings. In: Kao, MY. (eds) Encyclopedia of Algorithms. Springer, New York, NY. https://doi.org/10.1007/978-1-4939-2864-4_332
Download citation
DOI: https://doi.org/10.1007/978-1-4939-2864-4_332
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4939-2863-7
Online ISBN: 978-1-4939-2864-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering