Algorithm 编写伪代码以查找数组中的最小元素。[核实]

Algorithm 编写伪代码以查找数组中的最小元素。[核实],algorithm,max-heap,Algorithm,Max Heap,我需要一个解决方案验证。我找不到标签,所以如果有人能帮我的话。问题如下 设A[1..n]是包含n个元素的最大堆。假设没有重复的密钥 编写伪代码以查找A中的最小元素。然后使用O表示法查找RT 我的尝试: minIndex=1 min=A[1] i=0 while(i <= n) if A[i]<min min=A[i] minIndex = i i+=1 minIndex=1 min=A[1] i=0 虽然(你不需要min和minIndex,但你可以选择一

我需要一个解决方案验证。我找不到标签,所以如果有人能帮我的话。问题如下

设A[1..n]是包含n个元素的最大堆。假设没有重复的密钥

编写伪代码以查找A中的最小元素。然后使用O表示法查找RT

我的尝试:

minIndex=1
min=A[1]
i=0
while(i <= n)
  if A[i]<min
     min=A[i]
     minIndex = i
  i+=1
minIndex=1
min=A[1]
i=0

虽然(你不需要
min
minIndex
,但你可以选择一个。(因为
A[minIndex]=min
)。此外,通常选择第一个元素作为min并从第二个开始循环,而不是从第二个开始循环。因此
A[minIndex]=min
解决了你评论的后半部分?删除
min
并更改
A[i]太棒了,我现在明白你的意思了。非常感谢。另外,你可以从
i=天花(n/2)
开始,因为最小值保证是叶节点之一。这将使运行时间加快一倍,但仍然是O(n)。