二叉堆构建的比较器网络
1. 预备知识
在开始构建二叉堆的比较器网络之前,我们需要了解一些基本定义和符号。
- 二叉树 :大小为 $n$ 的二叉树是具有 $n$ 个节点的树,每个节点的度最多为 2。节点 $x$ 属于第 $k$ 层,如果从根到 $x$ 的最长简单路径有 $k$ 条边。树的高度是从根开始的最长简单路径中的边数。以第 $k$ 层节点 $x$ 为根的子树 $T_x$ 是由 $x$ 的后代诱导的树。
- 完全二叉树 :所有叶子都在同一层,且所有内部节点的度都为 2 的二叉树。显然,其高度为 $\lfloor\log n\rfloor$。
- 堆形状的二叉树 :高度为 $h$ 的堆形状二叉树,其最上面的 $h - 1$ 层是完全填充的,第 $h$ 层从左到右填充。
- 堆有序二叉树 :每个节点包含一个元素,该元素大于或等于其父节点的元素。
- 二叉堆 :定义为堆形状且堆有序的二叉树,可以作为大小为 $n$ 的隐式树存储在数组 $H$ 中。树的根元素位于数组的索引 1 处(即根存储在 $H[1]$ 中),给定节点 $x$ 的索引 $i$,其左右子节点的索引分别为 $2i$ 和 $2i + 1$。
- 比较器网络 :具有 $n$ 个输入和大小为 $s$ 的比较器网络是由 $n$ 条水平线(每个输入一条)和 $s$ 个比较器组成的集合。线 $i$ 和 $j$ 之间的比较器(简记为 $i : j$)比较线 $i$ 和 $j$ 上的当前值,
超级会员免费看
订阅专栏 解锁全文
1780

被折叠的 条评论
为什么被折叠?



