这里我们有一个二进制堆的数组实现的片段。我想要一些帮助来了解这个 for 循环在伪代码中的含义:
public void insert (Anytype x) {
int hole = ++currentSize; //currentSize is the size of the array
for (array[0] = x; x.compareTO(array[hole / 2]) < 0; hole /= 2)
array[hole] = array[hole / 2];
array[hole] = x;
}
我似乎无法理解这个 for 循环是如何工作的。谢谢你。
编辑填补了这个漏洞