堆中最大的项目

发布于 2024-11-17 01:50:57 字数 199 浏览 2 评论 0原文

堆中最大的项必须出现在位置 1,第二大的项必须出现在位置 1 位于位置 2 或位置 3。给出大小为 31 的堆中的位置列表,其中 第 k 个最大的 (i) 可以出现,而 (ii) 不能出现,因为 k=2, 3, 4(假设值为 是独特的)。

我正试图在期中考试中研究这个问题,但现在已经凌晨 3 点了,我在书中遇到了这个问题,因为它没有提供解决方案。任何帮助将不胜感激。

The largest item in a heap must appear in position 1, and the second largest must
be in position 2 or position 3. Give the list of positions in a heap of size 31 where the
kth largest (i) can appear, and (ii) cannot appear, for k=2, 3, 4 (assuming the values to
be distinct).

I am trying to study this for my midterm but its 3AM and I am stuck on this problem in the book as it does not provide a solution. Any help would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷你仙 2024-11-24 01:50:57

如果您查看 Wikipedia 上的堆实现示例,您将看到第三大可以位于位置 2 或 3(无论第二大的不是哪一个),也可以位于位置 4+5 或 6+7(取决于第二大的位置)。因此,它可以是2-7。

然后,第四大的必须位于第三大可以位于的任何位置,加上第三大的直接子代的任何位置。这意味着它可以是 2 到 15 之间的任意值。

下图是从0开始的,因为是数组实现,所以位置加1。

数组中实现的堆的图片表示

If you look at the Heap Implementation example on Wikipedia, you will see that the third largest can be in position 2 or 3, whichever one the second largest is not, as well as positions 4+5 or 6+7, depending on where the second largest is. Thus, it can be in 2-7.

The fourth largest must then be in any position the third largest can be, plus any position which is a direct child of the third largest. This means it can be anywhere from 2-15.

The following picture is 0-based, as it is an array implementation, so add one for the position.

Picture representation of a heap implemented in an array

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文