New Results on Three-Sided Skyline Range Counting and Reporting
Abstract
In the orthogonal skyline range counting (resp. reporting) problem we store the set of points in a data structure so that for any query range the number of points (resp. the list of all points) on the skyline of can be found efficiently. In this paper we study two-dimensional range counting and reporting problems in the case when the query range is bounded on three sides.
We describe a linear-space data structure that answers top-open three-sided skyline counting queries in time, where is the number of points stored in the data structure. We also show that bottom-open three-sided skyline counting queries are as difficult as general four-sided queries and any data structure that uses space for a constant requires time to answer such queries.
Next, we turn to skyline color range queries. In this variant of the problem each point in is assigned a color and we must count (resp. report) the distinct colors of point on the skyline of . We describe an -space data structure that answers top-open three-sided color counting queries in time. Finally, we study top-open three-sided skyline color reporting in the EM model and describe a data structure that uses linear space and answers queries in I/Os where is the number of colors on the skyline. This is the first external-memory data structure with optimal query cost and space usage for this problem.
Keywords and phrases:
Data Structures, Range Searching, Skyline QueriesCopyright and License:
2012 ACM Subject Classification:
Theory of computation Data structures design and analysisEditor:
Pierre FraigniaudSeries and Publisher:
Leibniz International Proceedings in Informatics, Schloss Dagstuhl – Leibniz-Zentrum für Informatik
1 Introduction
A two-dimensional point is said to be dominated by a point if and , or and . For a set of points , the skyline of is the subset of points that are not dominated by any other point in . A skyline range searching query on a set of points asks for (some information) about the skyline of points in .
In this paper we study different variants of two-dimensional skyline range searching in the case when the query range is bounded on three sides. See Figure 1. We present new results for three-sided skyline range counting queries and three-sided skyline color range counting queries. We also describe a data structure for three-sided skyline color range reporting in the external memory model.
Previous Work
A skyline range counting query asks for the number of points on the skyline of . Orthogonal skyline range counting queries were considered in [10, 6, 3]. Brodal and Larsen [3] described a -space data structure with query time for a four-sided range. In [3] the authors also showed that this bound is tight: any data structure that uses space supports skyline range counting queries in time.
A skyline range reporting query asks for the list of all points on the skyline of . Data structures for orthogonal skyline range reporting queries were studied in [5, 3, 11, 9]. Das et al. [5] presented a data structure that uses space and supports four-sided skyline range reporting queries in time, where is the number of reported skyline points. Brodal and Larsen [3] imporved their result and described a data structure that requires query time and space usage .
In the external memory model [17], Kejlberg-Rasmussen et al. [11] present a linear space data structure that answers four-sided skyline reporting queries in I/Os, where is the number of reported points and is the block size. In the same paper [11] the authors present a linear-space data structure that answers top-open three-sided skyline reporting queries in I/Os when all points are on grid.
Ganguly et al. [9] studied the colored version of skyline range reporting problem in the external-memory model. In this variant of the problem each point is assigned a color (or category). The answer to a query is the list of colors that occur on the skyline of . For the case when all points are on the grid, Ganguly et al. [9] describe a data structure that uses space and answers top-open three-sided queries in I/Os and a data structure that uses space and answers queries in I/Os, where is the number of reported colors.
Our Results
In this paper we describe a linear-space data structure that answers top-open three-sided skyline range counting queries on grid in time . We also show that any data structure with space for some constant needs time to answer bottom-open three-sided skyline range counting queries. This result demonstrates that there is a fundamental gap between top-open queries (i.e., when the query range is unbounded in direction) and bottom-open queries (i.e., when the query range is unbounded in direction) with respect to skyline counting queries. Moreover, due to the lower bound on orthogonal range counting [16], we need time to answer two-dimensional range counting queries using space. This lower bound is also valid when the query range is a top-open three-sided range. Our result thus shows that counting points on a skyline of a query range can be fundamentally faster than counting all points in a query range.
Next we turn to the skyline color range counting problem. We describe a data structure that answers top-open three-sided skyline color counting queries in time. That is, our data structure calculates, for any top-open three-sided query range , the number of distinct colors of points on the skyline of . This is the first data structure for the skyline color counting problem.
Finally we consider top-open three-sided color range reporting in the external-memory model. We improve upon the previous result by Ganguly et al. [9] and describe a data structure that uses space and supports queries in I/Os, where is the number of reported colors and is the block size. Our result demonstrates that three-sided skyline color reporting can be implemented with optimal space and query cost. For comparison, the best currently known solution for the three-sided color reporting problem (i.e., for the case when all colors in a three-sided query range must be reported) either uses super-linear space or has super-constant query cost [15]. Thus our result shows that skyline reporting can be more efficient than general color reporting in the case of top-open three-sided ranges (with respect to the best currently known results).
2 Top-Open Skyline Counting
In this section we describe a simple linear-space data structure that answers three-sided skyline counting queries in time. Our solution uses the sweepline technique: a vertical sweepline is moved in direction and a subset of points to the left of is stored in a partially persistent list . When a point is hit by the sweepline, the list is updated as follows: we remove all points with ; then we add to . Points in are stored in decreasing order of their -coordinates. We will denote by the version of after removing all and inserting the point with . See Figure 2 for an example.
Lemma 1.
When the vertical sweepline hits a point , is appended at the end of .
Proof.
Follows directly from the description. When a point is inserted into , all points with must be removed from . The rank of a point in the list , denoted by , is equal to the number of points that precede in (plus one). By Lemma 1, when a point is inserted into , the rank of equals the size of ; the rank of any point is not changed while is in .
Lemma 2.
A point is in iff is on the the skyline of .
Proof.
If is not on the skyline of , then is dominated by some point . Since and , was removed from for some and .
If is on the skyline of , then there is no point such that and . By definition of , .
If a point precedes a point in , we will denote this by .
Lemma 3.
If in , then and .
Proof.
Consider the version of .
By Lemma 1, is appended at the end of and precedes in ; since is sorted by -coordinates, .
By Lemma 2, and are on the skyline of . Since and does not dominate , .
Lemma 4.
A point is on the skyline of iff is on the skyline of , and .
Proof.
Consider a point on the skyline of . Then and . There is no point that dominates . Any point that dominates must satisfy and . Hence, there is no point in that dominates . Conversely, consider a point on the skyline of such that and . There is no point that dominates in the region . Hence there is no point that dominates in . Since is in and is not dominated by any other , is on the skyline of .
Theorem 5.
There exists an -space data structure that answers top-open three-sided skyline counting queries on grid in time .
Proof.
We use the partially persistent predecessor data structure by Chan [4] that supports queries in time and uses space where is the total number of elements stored in the data structure. We employ two instances of Chan’s data structure, one that supports queries on -coordinates of points in and one that supports queries on -coordinates of points in . Suppose that we must answer a skyline counting query on a range . By Lemmas 2 and 4, a point is on the skyline of iff , and . Points in are sorted in increasing order by their -coordinates and in decreasing order by their -coordinates. Let denote the point in with the smallest -coordinate such that . Let denote the point in with the largest -coordinate such that . By Lemma 3, the skyline of consists of all points in such that . The number of such points is , where denotes the rank of a point in . Using the reduction to rank space technique, we can extend the result of Theorem 5 to the general case of points on a grid; see e.g., [1]. In this general case, the space usage of the data structure remains and the query time is increased by an additive term , where is the time needed to answer a predecessor query [13].
3 Adjusted Right Boundary
For a given set of points and query range the range predecessor of is the point with the largest -coordinate in . The adjusted right boundary of , denoted by , is the -coordinate of . Thus is the -coordinate of the rightmost point in . For simplicity we will denote as , since is the entire input set. Using the adjusted right boundary, we can convert a skyline query on a top-open three-sided range into a skyline query on an one-dimensional range where . We will use the partially persistent list , introduced in Section 2 to describe our result in this section.
Lemma 6.
A point is on the skyline of iff is on the skyline of where .
Proof.
Suppose that a point is on the skyline of , i.e there is no other point that dominates . By definition of , is the largest -coordinate of a point in . Hence, and therefore must be in . There is no point in that dominates because and there is no point with -coordinate less than that dominates because . Therefore, is on the skyline of . Now, suppose the point is on the skyline of . Since and , . Let be the point such that . Then is the point with the largest -coordinate in and . Since and is on the skyline of , . There is also no point with and . Therefore and is also on the skyline of .
The following lemma enables us to compute the range predecessor query in a top-open three-sided range.
Lemma 7.
Let and let denote the point that is the successor of in with respect to -coordinates. If is not empty, then is the range predecessor of .
Proof.
According to Lemma 2, is the skyline of points in , hence . Since, is the successor of in with respect to -coordinates, and by Lemma 3, must be the point with largest -coordinate in among the points that have -coordinate greater than . Therefore, is the point with largest -coordinate in the range . Since is not empty, . Hence, and is also the range predecessor of .
To find the adjusted right boundary of a top-open three-sided query range , we visit the version of the partially persistent list, i.e. the version that is created when the vertical sweepline hits . By Lemma 7, we can find the adjusted right boundary in time using the persistent predecessor data structure from [4].
4 Bottom-open Three-sided Queries
In this section we show that a four-sided skyline range searching query can be reduced to a bottom-open three-sided skyline range searching query where is the -coordinate of the rightmost point in (aka the range predecessor of ). In other words the skyline of is the same as the skyline of the bottom-open range , where .
Lemma 8.
Let denote the rightmost point in a four-sided range . A point is on the skyline of iff is on the skyline of where =.
Proof.
Consider some point on the skyline of . Since is the rightmost point in , and hence is in . Since is on the skyline of and there is no point in that dominates . No point in can dominate because . Hence, no point in dominates and is on the skyline of . Now, suppose a point is on the skyline of . Since , . The point is not dominated by because is on the skyline of and hence since is the rightmost point of . This implies that and, since is empty, is also on the skyline of .
We can use any data structure for bottom-open three-sided skyline queries to answer four-sided skyline queries, with an additional cost of finding the rightmost point in the four-sided range. Through this reduction, we can demonstrate that solving a bottom-open three-sided skyline query is as hard as solving a four-sided skyline query.
Theorem 9.
If we can answer a bottom-open three-sided skyline counting query in time and space, then we can answer a four-sided skyline counting query in time and space where and are the time and space required for answering a range predecessor query.
Using the result of Nekrich and Navarro [14], the range predecessor query can be answered in space and time. Hence we can set and in Theorem 9. As a direct corollary of this result, we establish the lower bound of for bottom-open three-sided skyline counting queries. This lower bound is also valid when all points are on grid.
Corollary 10.
Any data structure that uses space needs time to answer a bottom-open three-sided skyline counting query.
Proof.
In [3], Brodal and Larsen prove the lower bound for four-sided skyline counting queries. By Theorem 9 and [14], a data structure that supports three-sided bottom-open queries in space and time can be used to answer four-sided queries in space and time. Hence, the lower bound of Brodal and Larsen [3] is also valid for bottom-open three-sided queries. We remark that Corollary 10 is valid even if points are in the rank space. On the other hand, we have shown in Theorem 5 that top-open three-sided skyline counting queries can be answered in time using linear space. Theorem 5 and Corollary 10 show that there is a significant complexity gap between the top-open and bottom-open variants of three-sided skyline counting.
5 Top-Open Skyline Color Counting
In this section, we present a linear space data structure for skyline color counting queries on a top-open three-sided range in time. We use the adjusted right boundary, defined in Section 3, to reduce a top-open three-sided query to a two-sided query; then we count the distinct colors on the skyline of a two-sided range. The data structure will use the persistent list approach, similar to Section 2. But now our task is more challenging because distinct colors of points on the skyline must be counted and there could be several points of the same color. Therefore we will employ a different persistent list and combine this approach with the reduction of three-sided to two-sided queries from Section 3.
Let denote the partially persistent list that was defined in Section 2 and let be the sub-list of the partially persistent list where for every version and each color that occurs in , stores the bottommost point of color from . Thus, as the vertical sweepline moves along direction, we keep only the bottommost point of each distinct color on the skyline to the left of in the partially persistent list . Our definition of the sublist is motivated by the fact that we must count the number of distinct colors on the skyline. Thus, must contain exactly one point for every color on the skyline of the respective two-sided range. The correctness of our method will be proved in Lemma 11, 12, and 13.
We distinguish between three different kinds of updates on . When hits a point with , we erase all points such that . An erased point is permanently deleted from as it will no longer be on the skyline; that is, will not be reinserted into any later versions of the list . When a point is erased, we reinsert the bottommost previously removed point such that and (provided such point exists). If there is a point such that and , we remove . A removed point is still on the skyline but is not the bottommost point of its color. Hence it must be deleted from the current version of , but it can be reinserted into a later version of . Then we add to . We will denote by the version of after erasing all , removing , and inserting .
Lemma 11.
There is at least one point of color on the skyline of iff there is exactly one point of color in .
Proof.
Suppose there is one or more points where of color on the skyline of . Then by Lemma 2, and by definition the bottommost point is in . Therefore contains exactly one point of color . Conversely, let be the point of color in . Then is also in because . Hence, by Lemma 2, is on the skyline of the query range and there is at least one point of color in .
Lemma 12.
There is at least one point of color on the skyline of iff there is exactly one point such that .
Proof.
Suppose there are one or more points where of color on the skyline of . Then by Lemma 2, . Let denote the bottommost point of color in . Since , . By definition, only . Therefore, contains exactly one point of color such that . Conversely, consider the point with . Then by definition, and by Lemma 2, is on the skyline of . Finally, using a special case of Lemma 4, where , is on the skyline of .
Lemma 13.
There is at least one point of color on the skyline of iff there is exactly one point of color in such that and .
Proof.
Suppose there is at least one point of color on the skyline of . By Lemma 6, is on the skyline of where . Hence by Lemma 13, there is exactly one point of color in . Conversely, suppose the point of color is in . By Lemma 11, is on the skyline of . Given that , hence by Lemma 6, is on the skyline of .
We can count the number of points with and by answering a partially persistent range counting query. We use the data structure of Munro et. al. [12] that answers such queries in time and uses space, where is the total number of updates in . We will show below that . Thus we can count the number of points with in time and the total query time is .
Space Usage
To demonstrate that the space requirement for the data structure is , we need to evaluate the number of updates for . Suppose that every update costs and each point is initially assigned before being inserted into the partially persistent list. We will show below that this overall budget of is sufficient to execute all necessary updates of . The insert operation costs , leaving the point with . At any time, a point can be either removed or erased from the list. When is removed, is spent; thus each removed point has . A removed point is reinserted into only when a point with the same color and smaller -coordinate is erased from . The erased point, with , spends on the erase operation; the remaining are transferred from to the reinserted point . Thus spends on an insertion and receives from . Hence when a point is re-inserted into , it has a budget of . In summary, the list is updated times. Since the total number of updates is , the space used by and the range counting data structure is also bounded by .
Theorem 14.
There exists an -space data structure that answers top-open three-sided skyline color counting queries in time.
6 Top-Open Skyline Color Reporting
In this section we describe an external memory data structure that uses linear space and supports top-open three-sided skyline color reporting queries in I/Os, where is the number of reported colors. Our data structure uses the persistent list defined in Section 5. By Lemma 12, a color occurs on the skyline of iff there is a point of that color in , such that and is the adjusted right boundary of . Thus, a query can be answered by accessing the version of . However, it is not clear whether we can compute the adjusted right boundary in time. In this paper we use a different approach that relies on the results from previous sections. We will show that we can either (1) calculate in I/Os when the number of colors is sufficiently large or (2) calculate the adjusted right boundary in time for an appropriately selected small subset of points.
The following two lemmas will be used in this section.
Lemma 15.
Let be a set of integers such that . There exists a data structure that uses space and supports predecessor queries on in I/Os.
Lemma 16.
Let be a set of two-dimensional points such that . There exists a data structure that uses space and answers range predecessor queries on in I/Os.
Both lemmas can be easily proved by combining standard data structures; for completeness, we provide a proof in Appendix.
Data Structure
We divide the points into chunks of size according to their -coordinates. Thus, the -th chunk contains points , such that and the total number of chunks is . Each chunk is stored in the data structure of Lemma 16.
Chunks are also grouped into a number of (intersecting) sets, further called canonical sets. For every such that and for every such that , the canonical set consists of all points with -coordinates in . For each canonical set , we store the list that contains topmost points with distinct colors that occur on the skyline of . More formally: Let denote the (conceptual) list of all points on the skyline of , sorted by -coordinates in decreasing order. Let denote the sub-list of that contains the topmost point of every color that occurs in . The set contains the first points from . The -coordinates of points in are stored111We remark that lists and are not stored in our data structure. These lists were introduced in order to define . in the data structure of Lemma 15.
To find for a top-open three-sided query range , we first identify the chunks containing and . Let the chunks containing and be and respectively. The query is then divided into three parts: the left marginal query , the right marginal query and the middle query ; the parameters and are chosen so that is the right -boundary of the chunk and is the left -boundary of the chunk . See Fig 6 for illustration. The marginal queries fit into individual chunks and the middle query spans an integer number of chunks. We will search for the appropriate adjusted right boundary in , and (in this order).
The following lemma provides an explanation for our method. We will say that a query range is empty if .
Lemma 17.
Let and consider any such that .
If is empty, then
the adjusted right boundary of is the adjusted right boundary of .
If is not empty, then
the adjusted right boundary of is the adjusted right boundary of .
Proof.
By definition, is the largest -coordinate of a point in , see Section 3. If the right region is empty the rightmost point must lie in the left region . Hence, . But if the right region is not empty, there must be a point in the right region such that for any point ; hence is the same as .
Lemma 17 can be applied iteratively and we can divide the query range into more than two parts in the same manner. Next, we present two more lemmas that will be used to describe the method for searching the adjusted right boundary.
Lemma 18.
Consider a canonical set and a query range for some . Let denote the lowermost point in . If , then there are at least distinct colors on the skyline of , where is the size of the block.
Proof.
By definition, contains topmost points with distinct colors from the skyline of . Each such point satisfies and . Since , we conclude that . Therefore all points from are also in . Since points in are on the skyline of , they are also on the skyline of . Since all points in have different colors, the skyline of must contain at least distinct colors.
Lemma 19.
Consider a canonical set and a query range such that , where is the rightmost (i.e., the lowermost) point in . A color occurs on the skyline of if and only if it occurs on the skyline of , where and .
Proof.
Let be the topmost point of color on the skyline of . By definition of , we have , and since is the rightmost -coordinate among the topmost points of distinct colors on the skyline of , there is no point of color in that dominates . Also, since , no point in dominates . Hence, is on the skyline of and the color occurs on the skyline of . Conversely, let be the topmost point of color on the skyline of . Since , . By definition of , and . This implies and hence . As is already the topmost point of its color and lies to the left of , no point in can dominate it. Therefore, also lies on the skyline of and the color must also be on the skyline of .
In what follows, we describe the method for searching the adjusted right boundary in detail (see Figure 6 for a visual illustration).
- Step 1.
- Step 2.
-
Let . We divide into two query ranges, and . Let and . Let denote the canonical set that contains all points with -coordinates in . Let denote the canonical set that contains all points with -coordinates in . We observe that and for two canonical sets and .
- Step 2(a).
-
Let denote the topmost point in and let denote the lowermost point in . Since points in are sorted by -coordinates, we can identify and in I/Os. We distinguish between three different cases.
- Case 1. :
-
In this case and we proceed with Step 3.
- Case 2. :
-
In this case we find in I/Os, but we can show that . By Lemma 18, the total number of colors on the skyline of is at least . Since , , where is the total number of colors on the skyline of . Since , the adjusted right boundary is found in I/Os.
- Case 3. and :
- Step 3.
-
If , we process in the same way as was described for in Step 2.
- Step 4.
-
If , we find in I/Os, in the same way as described for in Step 1.
Space Usage
Each individual chunk contains points, and there are chunks, where . Therefore, the total space usage of chunk data structures is . Additionally, for every canonical set stores points, and there are canonical sets because for every chunk there are sets of exponentially increasing size starting at the left boundary of that chunk. In total, the data structure occupies words.
Our procedure for transforming a three-sided top-open query range into a two-sided query range can be summarized in the following lemma.
Lemma 20.
For any query range , we can find some value that satisfies the following property: a color occurs on a skyline of iff it occurs on the skyline of for . The cost of finding is I/Os, where is the number of colors on the skyline of and the underlying data structure uses space .
Color Reporting Queries
The distinct colors on the skyline of can be reported as follows. We find the value of , such that a color occurs on the skyline of iff it occurs on the skyline of . By Lemma 20 this can be done in I/Os where is the number of colors on the skyline of . Then we access the partially persistent list at the version , i.e , and traverse the list in order of decreasing -coordinates. We stop when a point with is reached. For each point we report its color. The time required to examine all such points and report their colors is I/Os, where is the number of points with . By Lemma 12, for every color on the skyline of there is exactly one point with that color, such that and .
Theorem 21.
In the external memory model, there exists a -space data structure that answers top-open three-sided skyline color reporting queries on an grid in I/Os.
The general case can be reduced to the case when points are on grid at the cost of increasing the query cost by ; see the remark after Theorem 5.
7 Conclusion
In this paper we show that there is a gap between top-open and bottom-open three-sided skyline counting queries: while bottom-open queries have the same time complexity as four-sided skyline counting queries, top-open queries can be answered in time. Our technique also lead to improved results on (top-open) three-sided skyline color counting and (top-open) three-sided range reporting in external memory.
One important open question related to our work concerns the complexity of four-sided skyline range reporting. The best data structure for four-sided range reporting in 2-D answers queries in time. This time is known to be optimal. On the other hand, the fastest currently known data structure for four-sided skyline range reporting answers queries is time. Is there a data structure that uses space and supports four-sided skyline reporting queries in time?
References
- [1] Stephen Alstrup, Gerth Stølting Brodal, and Theis Rauhe. New data structures for orthogonal range searching. In 41st Annual Symposium on Foundations of Computer Science (FOCS), pages 198–207, 2000. doi:10.1109/SFCS.2000.892088.
- [2] Bruno Becker, Stephan Gschwind, Thomas Ohler, Bernhard Seeger, and Peter Widmayer. An asymptotically optimal multiversion b-tree. The VLDB Journal, pages 264–275, 1996. doi:10.1007/s007780050028.
- [3] Gerth Stølting Brodal and Kasper Green Larsen. Optimal planar orthogonal skyline counting queries. In 14th Scandinavian Symposium and Workshops (SWAT), pages 110–121, 2014. doi:10.1007/978-3-319-08404-6_10.
- [4] Timothy M. Chan. Persistent predecessor search and orthogonal point location on the word RAM. ACM Transactions on Algorithms, pages 22:1–22:22, 2013. doi:10.1145/2483699.2483702.
- [5] Ananda Swarup Das, Prosenjit Gupta, Anil Kishore Kalavagattu, Jatin Agarwal, Kannan Srinathan, and Kishore Kothapalli. Range aggregate maximal points in the plane. In 6th International Workshop on Algorithms and Computation (WALCOM), 2012. doi:10.1007/978-3-642-28076-4_8.
- [6] Ananda Swarup Das, Prosenjit Gupta, and Kannan Srinathan. Counting maximal points in a query orthogonal rectangle. In 7th International Workshop on Algorithms and Computation (WALCOM), 2013. doi:10.1007/978-3-642-36065-7_8.
- [7] Michael L. Fredman and Dan E. Willard. Surpassing the information theoretic bound with fusion trees. Journal of Computer and System Sciences, pages 424–436, 1993. doi:10.1016/0022-0000(93)90040-4.
- [8] Harold N. Gabow, Jon Louis Bentley, and Robert E. Tarjan. Scaling and related techniques for geometry problems. In Proceedings of the 16th annual ACM Symposium on Theory of computing (STOC), pages 135–143, 1984. doi:10.1145/800057.808675.
- [9] Arnab Ganguly, Daniel Gibney, Sharma V. Thankachan, and Rahul Shah. I/O-optimal categorical 3-sided skyline queries. Theoretical Computer Science, pages 132–144, 2021. doi:10.1016/j.tcs.2021.10.010.
- [10] Anil Kishore Kalavagattu, Jatin Agarwal, Ananda Swarup Das, and Kishore Kothapalli. On counting range maxima points in plane. In Combinatorial Algorithms, 23rd International Workshop (IWOCA), pages 263–273, 2012. doi:10.1007/978-3-642-35926-2_28.
- [11] Casper Kejlberg-Rasmussen, Yufei Tao, Konstantinos Tsakalidis, Kostas Tsichlas, and Jeonghun Yoon. I/O-efficient planar range skyline and attrition priority queues. In Proceedings of the 32nd ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS), pages 103–114, 2013. doi:10.1145/2463664.2465225.
- [12] J. Ian Munro, Yakov Nekrich, and Sharma V. Thankachan. Range counting with distinct constraints. In Proceedings of the 27th Canadian Conference on Computational Geometry (CCCG), 2015. URL: http://research.cs.queensu.ca/cccg2015/CCCG15-papers/44.pdf.
- [13] Gonzalo Navarro and Javiel Rojas-Ledesma. Predecessor search. ACM Computing Surveys, 53(5):105:1–105:35, 2021. doi:10.1145/3409371.
- [14] Yakov Nekrich and Gonzalo Navarro. Sorted range reporting. In 13th Scandinavian Symposium and Workshops (SWAT), pages 271–282. Springer, 2012. doi:10.1007/978-3-642-31155-0_24.
- [15] Manish Patil, Sharma V. Thankachan, Rahul Shah, Yakov Nekrich, and Jeffrey Scott Vitter. Categorical range maxima queries. In 33rd ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS), pages 266–277. ACM, 2014. doi:10.1145/2594538.2594557.
- [16] Mihai Patrascu. Lower bounds for 2-dimensional range counting. In Proceedings of the 39th Annual ACM Symposium on Theory of Computing (STOC), pages 40–46, 2007. doi:10.1145/1250790.1250797.
- [17] Jeffrey Scott Vitter. External memory algorithms and data structures: Dealing with massive data. ACM Computing surveys (CsUR), pages 209–271, 2001. doi:10.1145/384192.384193.
Appendix A Proofs of Lemmas 15 and 16
Lemma 22.
Let be a set of integers such that . There exists a data structure that uses space and supports predecessor queries on in I/Os.
Proof.
If , then . In this case we store in a B-tree so that a predecessor query is answered in I/Os. If , . In this case we store in a fusion tree [7], so that a predecessor query is answered in .
Lemma 23.
Let be a set of two-dimensional points such that . There exists a data structure that uses space and answers range predecessor queries on in I/Os.
Proof.
According to Lemma 7, the rightmost point in a query range can be found using a partially persistent data structure. If , we store the points in a partially persistent B-Tree [2]. If , we store the points in a partially persistent variant of the fusion tree.
