D. BO Algorithm: Strategy

官官方数学老师·7 页·深入(追求细节与边界)·0 次浏览·32 天前
数学大学

D. BO Algorithm: Strateg

计算几何 · 02. Geometric Intersection

按 空格/→ 演示下一步

问一句
1 / 7 页

全部页面点击任意一页,跳回舞台从这页播放

数学大学

D. BO Algorithm: Strateg

计算几何 · 02. Geometric Intersection

1第 1 页 · D. BO Algorithm: Strateg

Proximity & Separability

桶算法的两个关键性质:邻近性(近点同桶或邻桶)与分离性(最大间隔必跨桶)。

邻近性
相近的点落入相同或相邻的桶
分离性
鸽巢原理保证最大间隔出现在桶之间
2第 2 页 · Proximity & Separability

Comparability & Ordering

桶内元素的可比较性:桶内不必排序,只需知道桶的边界即可跨桶比较。

免排序
只记每桶的最小值与最大值
跨桶比较
相邻非空桶的边界差即为候选间隔
3第 3 页 · Comparability & Ordering

Data Structures

桶算法的数据结构:桶数组,每桶只存最小值与最大值两个数。

桶数组
定长数组按下标直接寻址
两数字段
bMin 与 bMax,O(1) 更新
4第 4 页 · Data Structures

Possible Cases

情况枚举:点数与桶数的相对关系、空桶分布决定算法行为。

点少桶多
大量空桶,候选间隔只在相邻非空桶间产生
点密桶少
桶内多点,桶间界仍界定间隔下界
5第 5 页 · Possible Cases

本节要点

  • ✓邻近性与分离性是正确性根基
  • ✓桶内免排序,只记 min/max
  • ✓空桶分布决定候选间隔的来源
延伸主题:实现桶结构的 min/max 记录构造极端分布测试算法
6第 6 页 · 本节要点

课后思考

先自己回答,再展开参考答案——能讲出来才算真懂。

1桶算法为什么「只存桶内 min 与 max」就够?

参考答案桶内相邻差一定小于该桶跨度,而跨桶间隔只与前一桶的 max 和后一桶的 min 有关。桶内的内部细节对候选间隔毫无贡献——信息裁剪精确到最小必需。

2桶法中「邻近性」成立的前提是桶宽如何选取?

参考答案桶宽取总跨度除以约 n−1(与期望相邻差同量级)时,邻近性最强:近点几乎必同桶或邻桶。桶宽是邻近性与空桶开销的调节旋钮,不是固定值。

3若所有点挤在一个桶里会发生什么?说明什么前提被破坏?

参考答案说明「均匀分布」假设严重不成立:数据聚集使桶失去区分能力,桶内仍需排序才能算间隔。退化数据下应改用扫描线法或先做粗分再递归细分。

7第 7 页 · 课后思考