小编Cás*_*lli的帖子

是什么阻止了Van Emde Boas树在实际应用中更受欢迎?

我们知道平衡树在O(log n)时间内执行插入,删除和搜索,例如包括

  • 红黑
  • AVL
  • 张开
  • B树(及其变体).

但是,当键是在某个有限范围内的整数时,可以使用Van Emde Boas树将这些操作降低到O(log(log n)) - 时间,即指数地优于AVL或RB树.嗯,这实际上是许多现实世界应用程序的情况.

我看到很多应用程序.我想引用的是数据库,创建索引主要涉及在Hash或B*-tree之间进行选择.如果实现了Van Emde Boas树,它将提供这两个选项之间的中间点,理论上可以改善许多查询优化问题.

为什么Van Emde Boas树从未被广泛用作红黑或B树

  • 这不是一个新奇事物(它发明于1975年)
  • 易于实施
  • 比其他树快

有什么考虑呢?

data-structures van-emde-boas-trees

34
推荐指数
2
解决办法
8396
查看次数

循环和堆栈的递归函数

众所周知,所有递归函数都可以仅使用单个循环和堆栈来编写。虽然这种转换可能会被批评为丑陋或可读性差,但它的主要用途显然是为了避免粉碎堆。

有很自然的方法可以将简单的递归函数转换为循环。例如,使用累加器进行简单的尾递归消除。到目前为止,我还没有看到这个问题的明确答案。

至少对我来说,有时将这种递归函数转换为提供堆栈的循环似乎是黑魔法。例如,考虑为

f(n) = n,                    if n <= 1
f(n) = f(n-1) + f(n-2) + 1,  if n > 1
Run Code Online (Sandbox Code Playgroud)

这个问题的核心是:

  • 是否有一种清晰的通用方法可以将递归函数转换为循环 + 堆栈?

recursion loops

5
推荐指数
1
解决办法
1450
查看次数

灰度图像到彩色

有没有办法将灰度图像转换为彩色图像?

这是一些JPG示例

  1. 照片1
  2. 照片2
  3. 照片3

ImageMagick功能强大,但似乎无法转换为彩色版本。

opencv image-manipulation imagemagick image-processing imagemagick-convert

1
推荐指数
1
解决办法
893
查看次数