3

在我的大学笔记中,构建堆的伪代码几乎是这样写的(唯一的区别是括号我有括号):

在此处输入图像描述

我在互联网上搜索,有几个这样的:

但不应该是这样的吗?

BuildHeap(A) {
   heapsize <- length[A]
   for i <- floor(length[A]/2) downto 1
      Heapify(A,i)
}

为什么他们写 heap_size[A] = length[A]?

4

1 回答 1

1

如果你有很多堆,A、B、C。而且只有一个可变堆大小,你将如何记住所有堆的大小?您将拥有所有堆的属性 heap-size。

在许多伪代码中,对象 O 的属性写为Attriubute[O]Attribute(O),(有时它们也写为O.attribute)。

第一个示例假定您将特定堆的堆大小存储为堆的属性。

第二个示例可能是将堆大小存储在一个局部变量中,该变量从Length[A]堆的长度属性 () 中获取其值。

以下是算法简介中关于伪代码的文本:

复合数据通常组织成对象,这些对象由属性或字段组成。使用字段名称后跟方括号中的对象名称来访问特定字段。例如,我们将数组视为一个对象,其属性长度表示它包含多少个元素。要指定数组 A 中元素的数量,我们写 length[A]。尽管我们对数组索引和对象属性都使用方括号,但通常可以从上下文中清楚地看出它的意图是什么

于 2012-12-27T02:11:57.747 回答