Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 为什么要求不超过1+;在将新节点插入堆时比较logN?_Algorithm_Heap_Heapsort - Fatal编程技术网

Algorithm 为什么要求不超过1+;在将新节点插入堆时比较logN?

Algorithm 为什么要求不超过1+;在将新节点插入堆时比较logN?,algorithm,heap,heapsort,Algorithm,Heap,Heapsort,我认为在将一个新节点插入堆时,它可能经过的节点数量是logN,为什么是(1+logN),1从哪里来?当注释数为2n时,有必要考虑边界情况。n个级别的堆适合2n-1个对象,因此再添加一个对象将启动新级别: 黑色方块表示三级堆的七个元素。红色元素是数字8。如果搜索到最后一个元素的位置,即使log28是三,也会得到四个比较。这对于说明注释数为2n时的边界情况是必要的。n个级别的堆适合2n-1个对象,因此再添加一个对象将启动新级别: 黑色方块表示三级堆的七个元素。红色元素是数字8。如果您的搜索将您带

我认为在将一个新节点插入堆时,它可能经过的节点数量是logN,为什么是(1+logN),1从哪里来?

当注释数为2n时,有必要考虑边界情况。n个级别的堆适合2n-1个对象,因此再添加一个对象将启动新级别:


黑色方块表示三级堆的七个元素。红色元素是数字8。如果搜索到最后一个元素的位置,即使log28是三,也会得到四个比较。

这对于说明注释数为2n时的边界情况是必要的。n个级别的堆适合2n-1个对象,因此再添加一个对象将启动新级别:


黑色方块表示三级堆的七个元素。红色元素是数字8。如果您的搜索将您带到最后一个元素的位置,您将得到四个比较,即使log28是三个。

因为
log(1)=0
但是插入到包含1个元素的堆中会对您的答案进行比较。我认为这应该是正确的答案。因为
log(1)=0
但是插入到一个包含1个元素的堆中需要对答案进行比较。我认为这应该是正确的答案。谢谢你的回答,但我不明白为什么有4个比较。对我来说,即使新添加的红方游动到根(三个比较:红线、绿线和蓝线,总共3次)@user1888955你也只需要比较根、根的子节点、根的孙子节点和红节点本身,为确保您已找到要查找的项目。感谢您的快速回复:)我错过了节点本身的比较。感谢您的回答,但我不明白为什么有4个比较。对我来说,即使新添加的红方游动到根(三个比较:红线、绿线和蓝线,总共3次)@user1888955你也只需要比较根、根的子节点、根的孙子节点和红节点本身,为确保您已找到要查找的项目。感谢您的快速回复:)我错过了节点本身的比较。