比较展开树的效率的最佳方法是什么?

时间:2013-10-19 15:35:12

标签: algorithm binary-search-tree splay-tree

我已经实施了多种splay tree算法。

比较它们的最佳方法是什么?

在添加随机节点时比较执行时间是一个好的开始吗?

我还实现了一个二进制搜索树,用于跟踪每个节点的访问量。我写了一个optimize()方法来创建最佳二进制搜索树 如果我们不打算修改搜索树,并且我们确切知道每个项目的访问频率,我们可以构建一个最佳二叉搜索树,这是一个搜索树,其中查找项目的平均成本(预期搜索成本)最小化 如何将这种参与比较展开树?

1 个答案:

答案 0 :(得分:2)

我喜欢经验方法。

采用这种方法:

  1. 创建一堆各种长度的随机典型数据集。
  2. 运行每个实现,找出每个实现的执行时间。
  3. 使用Hypothesis testing方法查明一个实现是否比另一个更好。在这里,null hypothesis(H 0 )是“两个实现平均应该执行相同的时间。
  4. 从第3步开始,一个实现优于另一个,概率为1-ppp_value)。
  5. PS Wilcoxon test被认为是一个很好的,并且在文献和研究中用于比较两种算法。