c++ - Boost多边形库 bool 函数计算时间

标签 c++ performance boost polygon boost-polygon

有人用过Boost多边形库的 bool 函数吗? Boost polygon library

它说算法的时间复杂度是O(nlogn),n = #points

我输入了 200000 个随机生成的多边形(有 5~8 个 potins)

但是 OR 和 XOR 函数花费了大约半个小时(是的,只是调用它的函数)

虽然结果是正确的,但是耗时太惨了

有人遇到过这个问题吗?

最佳答案

尽管发布展示所描述行为的代码总是有帮助的,但我假设每个 i=1..n 多边形与之前的每个 1..(i-1) 都有一些(唯一的)交叉点多边形,这意味着由第一个 n-1 多边形异或得到的点数是 n 的二次方,因此您请求 n 次 O(#Points * log(#Points)) 的操作,其中 #Points 是O(n^2),因此总复杂度为 O(n^2*log(n))。

关于c++ - Boost多边形库 bool 函数计算时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14008826/

相关文章:

C++11:当定义移动构造函数时,按值返回对象不会抛出异常吗?

java - 模拟Mongo Write Lock来衡量性能

mysql - 选择查询中重复聚合函数的性能

c++ - 虚函数和性能 C++

python - 使用 C++ 中的方法创建实例并将其传递给 Python

c++ - 从共享库中删除嵌入的源文件名

c++ - 如何在 Visual Studio 2013 中重新编译 .lib

c++ - Wangle:/usr/local/lib/libfolly.so: 对 boost::re_detail_106000 的 undefined reference

c++ - 如何将指向类方法的指针传递给 boost 线程

c++ - 高效使用python对象迭代大量数据调用python函数