
252
|
第
9
章
表
9
-
4
:比较两个算法在解决“Buffon 的 needle”问题上所需要花费的时间
n
/ 个 线段扫描 穷举 交点平均个数 / 个
π
的估计值 误差
16 1.77 0.18 0.84 3.809524 9.072611
32 0.58 0.1 2.11 3.033175 4.536306
64 0.45 0.23 3.93 3.256997 2.268153
128 0.66 0.59 8.37 3.058542 1.134076
256 1.03 1.58 16.2 3.1644 0.567038
512 1.86 5.05 32.61 3.146896 0.283519
1,024 3.31 18.11 65.32 3.149316 0.14176
2,048 7 67.74 131.54 3.149316 0.07088
4,096 15.19 262.21 266.16 3.142912 0.03544
8,192 34.86 1028.83 544.81 3.12821 0.01772
下面来看第二个问题,假设在集合
S
中,线段之间存在
O(
n
2
)
个交点,此时
线段扫描算
法
的性能将会特别差,因为对于如此多的交点,它在维护线段状态结构上费用过大。从
表
9-5
的结果中可以看到,穷举算法轻而易举地胜过了线段扫描算法,这里
n
条线段最
多会有
C
(
n
,2)
或
n
*(
n
-
1)/2
个交点。
表
9
-
5
:最坏情况下,两种算法的性能比较 ...