这是一个家庭作业问题,我被要求展示 8 元素二进制堆需要 8 次比较。
但是当我使用这样的示例时:1 2 3 4 5 6 7 8 我不确定我应该自下而上还是自上而下。但无论如何,我都试过了。
自上而下:我已经完成了 8 个步骤,但是当我计算比较次数时,我得到 13:S
在底部:我已经完成了 7 个步骤,但是当我计算比较次数时,我得到 10:S
在这里尝试算法之后是我得到的比较:
- H[L]=8 > H[i]=4
- H[L]=8 > H[i]=2, H[r]=5 > H[最大]=8
- H[L]=4 > H[i]=2
- H[L]=6 > H[i]=3, H[r]=7 > H[最大]=6
- H[L]=8 > H[i]=1, H[r]=7 < H[最大]=8
- H[L]=4 > H[i]=1, H[r]=5 > H[最大]=4
嗯,关于我应该如何计算比较次数以便我可以向他们展示 8 的任何帮助?我应该使用什么方法(自下而上或自上而下)?