在我的大学笔记中,Build Heap的伪代码几乎就是这样写的(只有区别是括号括号):
我在网上搜索过,有几个像这样:
但不应该是那样的吗?
BuildHeap(A) {
heapsize <- length[A]
for i <- floor(length[A]/2) downto 1
Heapify(A,i)
}
他们为什么写heap_size [A] = length [A]?
答案 0 :(得分:1)
如果你有很多堆,A,B,C。只有一个变量堆大小,你怎么记得所有堆的大小? 您将拥有所有堆的属性堆大小。
在许多伪代码中,对象O的属性被写为Attriubute[O]
或Attribute(O)
,(有时它们也被写为O.attribute
)。
第一个示例假定您将特定堆的堆大小存储为堆的属性。
第二个例子可能是将堆大小存储在一个局部变量中,该变量从堆的长度属性(Length[A]
)获取其值。
以下是关于算法导论中的伪代码的文本:
复合数据通常被组织成对象,对象由属性或字段组成。使用字段名称访问特定字段,后跟方括号中对象的名称。例如,我们将数组视为一个对象,其属性长度表示它包含的元素数量。要指定数组A中的元素数,我们写长度[A]。虽然我们对数组索引和对象属性使用方括号,但从上下文中通常可以清楚地看出哪种解释是