Build Heap function

问题描述 投票:3回答:1

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

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS8xNVo3Wi5qcGcifQ==” alt =“在此处输入图像描述”>

而且我在互联网上搜索,有几个类似的内容:

但是不应该那样吗?

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

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

algorithm heapsort
1个回答
1
投票

如果您有很多堆,A,B,C。并且只有一个可变的堆大小,您将如何记住所有堆的大小? 您将具有所有堆的属性堆大小。

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

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

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

这里是有关算法简介的伪代码的文本:

通常将化合物数据组织成对象,这些对象由属性或字段组成。使用字段名称后跟方括号内的对象名称来访问特定字段。例如,我们将数组视为对象,其属性长度指示其包含多少个元素。为了指定数组A中的元素数,我们编写length [A]。尽管我们对数组索引和对象属性都使用了方括号,但是从上下文中通常可以清楚地知道要使用哪种解释]


0
投票

在Build Heap函数中调用Heapify函数时,最佳情况,最坏情况和平均情况的时间复杂度是多少?

© www.soinside.com 2019 - 2024. All rights reserved.