在我的大学笔记中,构建堆的伪代码几乎是这样写的(唯一的区别是括号我有括号):
我在互联网上搜索,有几个这样的:
但不应该是这样的吗?
BuildHeap(A) {
heapsize <- length[A]
for i <- floor(length[A]/2) downto 1
Heapify(A,i)
}
为什么他们写 heap_size[A] = length[A]?
如果你有很多堆,A、B、C。而且只有一个可变堆大小,你将如何记住所有堆的大小?您将拥有所有堆的属性 heap-size。
在许多伪代码中,对象 O 的属性写为Attriubute[O]
或Attribute(O)
,(有时它们也写为O.attribute
)。
第一个示例假定您将特定堆的堆大小存储为堆的属性。
第二个示例可能是将堆大小存储在一个局部变量中,该变量从Length[A]
堆的长度属性 () 中获取其值。
以下是算法简介中关于伪代码的文本:
复合数据通常组织成对象,这些对象由属性或字段组成。使用字段名称后跟方括号中的对象名称来访问特定字段。例如,我们将数组视为一个对象,其属性长度表示它包含多少个元素。要指定数组 A 中元素的数量,我们写 length[A]。尽管我们对数组索引和对象属性都使用方括号,但通常可以从上下文中清楚地看出它的意图是什么