一个简单的例子是桶排序。对于铲斗排序工作,额外 必须提供信息。输入a1,a2 ,. 。 。 ,必须 仅由小于m的正整数组成。 (明显 对此的扩展是可能的。)如果是这种情况,那么 算法很简单:保持一个名为count的数组,大小为m,即 初始化为全0。因此,count有m个单元或桶 最初是空的。当读取ai时,将计数[ai]增加1.毕竟 读取输入,扫描计数数组,打印出一个表示 排序列表。该算法采用O(m + n);如果m是O(n),那么 总数是O(n)。
虽然这个算法似乎违反了下限,但事实证明 它不是因为它使用比简单操作更强大的操作 比较。通过递增适当的桶,算法 基本上在单位时间内进行m方式比较。这是类似的 用于可扩展散列的策略。这显然不在 已证明下限的模型。
关于上段的问题
谢谢!
答案 0 :(得分:0)
count[arr[i]]
更强大'然后比较,因为它是
实际上是*(count + arr[i])
。每个比较op有2个可能
值:true / false,而此op具有更广泛的值范围,
[所有可能的地址!]因此它更“强大”[0,m]
。这里的重要性和区别是:两个要素是
当且仅当它们相同时,哈希值相同。这个
当然,只有使用相同的哈希元素才能实现
[或更少]范围然后是图像。