add README
This commit is contained in:
parent
fe5609fb0d
commit
684eb03a87
1 changed files with 32 additions and 0 deletions
32
README.md
Normal file
32
README.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
## Problem statement
|
||||
|
||||
This solves the following problem:
|
||||
```
|
||||
Given a set of rectilinear rectangles in the plane, each by coordinates of opposing corners,
|
||||
calculate the area of their union.
|
||||
```
|
||||
It was a task to show that this is solvable in `O(n^2)` on one of my exercise sheets.
|
||||
Because I had some spare time, I decided to implement this.
|
||||
|
||||
Actually, this can be done in `O(nlog n)` time using a sweepline algorithm
|
||||
that makes use of [segment trees][st].
|
||||
|
||||
The implementation tries to be reasonably fast and respects `nlog n` running time,
|
||||
but is certainly not too optimized and more of a showcase.
|
||||
|
||||
|
||||
## Build
|
||||
A standard `C++` installation along with `CMake` should to the job.
|
||||
Remove the benchmark targets if you do not need them.
|
||||
|
||||
|
||||
## Benchmark
|
||||
|
||||
Just for fun, I played around with the [Google Benchmark Library][gl-benchmark].
|
||||
You will have to install the library and statically link to it to run the
|
||||
benchmarks.
|
||||
See the github page of the benchmark library for details.
|
||||
|
||||
|
||||
[gl-benchmark]: https://github.com/google/benchmark
|
||||
[st]: https://en.wikipedia.org/wiki/Segment_tree
|
Loading…
Reference in a new issue