<p>Given an array of size <i>n</i> from a total order, we consider the problem of constructing a data structure that supports various queries (range minimum/maximum queries with their variants and next/previous larger/smaller queries) efficiently. In the encoding model (i.e., the queries can be answered without the input array), we propose a <InlineEquation ID="IEq1"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq1.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="111" /> </InlineMediaObject> <EquationSource Format="TEX">\((3.701n + o(n))\)</EquationSource> </InlineEquation>-bit data structure, which supports all these queries in <InlineEquation ID="IEq2"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq2.gif" Format="GIF" Height="23" Rendition="HTML" Resolution="72" Type="Linedraw" Width="75" /> </InlineMediaObject> <EquationSource Format="TEX">\(O(\log ^{(\ell )}n)\)</EquationSource> </InlineEquation> time, for any positive constant integer <InlineEquation ID="IEq3"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq3.gif" Format="GIF" Height="14" Rendition="HTML" Resolution="72" Type="Linedraw" Width="12" /> </InlineMediaObject> <EquationSource Format="TEX">\(\ell \)</EquationSource> </InlineEquation> (here, <InlineEquation ID="IEq4"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq4.gif" Format="GIF" Height="22" Rendition="HTML" Resolution="72" Type="Linedraw" Width="107" /> </InlineMediaObject> <EquationSource Format="TEX">\(\log ^{(1)} n = \log n\)</EquationSource> </InlineEquation>, and for <InlineEquation ID="IEq5"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq5.gif" Format="GIF" Height="14" Rendition="HTML" Resolution="72" Type="Linedraw" Width="39" /> </InlineMediaObject> <EquationSource Format="TEX">\(\ell &gt; 1\)</EquationSource> </InlineEquation>, <InlineEquation ID="IEq6"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq6.gif" Format="GIF" Height="23" Rendition="HTML" Resolution="72" Type="Linedraw" Width="164" /> </InlineMediaObject> <EquationSource Format="TEX">\(\log ^{(\ell )} n = \log ({\log ^{(\ell -1)}} n)\)</EquationSource> </InlineEquation>). The space of our data structure matches the current best upper bound of Tsur (Inf. Process. Lett., 2019), which does not support the queries efficiently. Also, we show that at least <InlineEquation ID="IEq7"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq7.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="119" /> </InlineMediaObject> <EquationSource Format="TEX">\(3.16n-\Theta (\log n)\)</EquationSource> </InlineEquation> bits are necessary for answering all the queries. Our result is obtained by generalizing Gawrychowski and Nicholson’s <InlineEquation ID="IEq8"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="453_2025_1325_Article_IEq8.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="111" /> </InlineMediaObject> <EquationSource Format="TEX">\((3n - \Theta (\log n))\)</EquationSource> </InlineEquation>-bit lower bound (ICALP, 15) for answering range minimum and maximum queries on a permutation of size <i>n</i>.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Space-Efficient Data Structure for Next/Previous Larger/Smaller Value Queries

  • Seungbum Jo,
  • Geunho Kim

摘要

Given an array of size n from a total order, we consider the problem of constructing a data structure that supports various queries (range minimum/maximum queries with their variants and next/previous larger/smaller queries) efficiently. In the encoding model (i.e., the queries can be answered without the input array), we propose a \((3.701n + o(n))\) -bit data structure, which supports all these queries in \(O(\log ^{(\ell )}n)\) time, for any positive constant integer \(\ell \) (here, \(\log ^{(1)} n = \log n\) , and for \(\ell > 1\) , \(\log ^{(\ell )} n = \log ({\log ^{(\ell -1)}} n)\) ). The space of our data structure matches the current best upper bound of Tsur (Inf. Process. Lett., 2019), which does not support the queries efficiently. Also, we show that at least \(3.16n-\Theta (\log n)\) bits are necessary for answering all the queries. Our result is obtained by generalizing Gawrychowski and Nicholson’s \((3n - \Theta (\log n))\) -bit lower bound (ICALP, 15) for answering range minimum and maximum queries on a permutation of size n.