Algorithm 构建堆函数

Algorithm 构建堆函数,algorithm,heapsort,Algorithm,Heapsort,在我的大学笔记中,构建堆的伪代码几乎是这样写的(唯一的区别是括号我有括号): 我在互联网上搜索过,有几种是这样的: 但不应该是这样吗 BuildHeap(A) { heapsize <- length[A] for i <- floor(length[A]/2) downto 1 Heapify(A,i) } BuildHeap(A){ heapsize如果有多个堆A、B、C,并且只有一个可变堆大小,那么如何记住所有堆的大小?所有堆都有一个属性heap s

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

我在互联网上搜索过,有几种是这样的:

但不应该是这样吗

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

heapsize如果有多个堆A、B、C,并且只有一个可变堆大小,那么如何记住所有堆的大小?所有堆都有一个属性heap size。

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

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

第二个示例可能是将堆大小存储在一个局部变量中,该变量的值来自堆的length属性(
length[a]

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

复合数据通常被组织成由属性或字段组成的对象。访问特定字段时,使用字段名后跟方括号中的对象名。例如,我们将数组视为一个对象,其属性长度指示其包含的元素数。要指定元素数在数组A中,我们写长度[A]。虽然我们对数组索引和对象属性都使用方括号,但通常从上下文中可以清楚地看出解释的目的


在BuildHeap(B)上会发生什么?它是伪代码,
heap\u size(A)
可能意味着几乎任何东西。更有可能的是,你的教授不同意。不管怎样,他实际使用的堆大小是哪张幻灯片(即,为什么让你感到困惑)?