【发布时间】:2011-10-01 09:39:55
【问题描述】:
一个简单的例子是桶排序。为了桶排序工作,额外 信息必须可用。输入 a1, a2, . . . , 必须的 仅由小于 m 的正整数组成。 (明显地 对此的扩展是可能的。)如果是这种情况,那么 算法很简单:保存一个名为 count 的数组,大小为 m,即 初始化为全 0。因此,count 有 m 个单元格或存储桶,它们是 最初是空的。读取 ai 时,将 count[ai] 加 1。毕竟 读取输入,扫描计数数组,打印出一个表示 的排序列表。这个算法需要 O(m + n);如果 m 是 O(n),那么 总数是 O(n)。
虽然这个算法似乎违反了下界,但事实证明 不是因为它使用了比简单的更强大的操作 比较。通过增加适当的桶,算法 本质上是在单位时间内进行一次 m 路比较。这是相似的 可扩展散列中使用的策略。这显然不在 下界已被证明的模型。
我对上述段落的问题
- 作者所说的“它使用比简单比较更强大的操作”是什么意思?
- 通过增加适当的桶,算法如何进行m路比较?顺便问一下什么是m-way比较?
- 上述桶排序策略与可扩展哈希的关系如何?任何人都可以举一个可扩展散列的例子吗?
谢谢!
【问题讨论】:
标签: algorithm