有许多算法和数据结构利用了在k = \ sqrt n处获得最小值的想法。常见的例子包括
- 婴儿步长巨步算法,用于计算O(\ sqrt n)中的离散对数,
- 时间和内存中的静态2D正交范围计数,
- 在O(\ sqrt [k] n)中具有EXTRACT-MIN 并且在O(1)中具有 DECREASE-KEY的优先级队列,
- 在多项式时间内使用颜色为3色图着色,
仅举几个。
尽管此类算法通常不是最佳算法,但它们易于为学生所理解,并且可以快速证明幼稚的边界不是最佳算法。同样,由于缓存友好性(不考虑缓存无关紧要的技术),有时平方根思想数据结构比其基于二叉树的数据结构更实用。这就是为什么我在教学时会对此话题给予极大关注的原因。
我对这种更独特的示例感兴趣。因此,我正在寻找任何分析都基于平方根概念的(最好是优雅的)算法,数据结构,通信协议等。它们的渐近性不一定是最佳的。