gpt4 book ai didi

arrays - 在伪代码中使用 'temp'

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:18:46 27 4
gpt4 key购买 nike

我尝试在这里和整个 Internet 上进行研究,但由于伪代码编写相当多样化,许多人使用不同的符号来表示不同的事物,我找不到任何可能符合我的问题的内容。

给定以下内容:n 阶数组 A(不一定已经排序)和索引 p,r 使得 1<=p<=r<=n;

我得到了以下递归算法(伪代码),我想知道其中具体的两行(粗体)的作用/含义:

MAXB(A,p,r)

if p=r

then return A[p]

else temp<-----MAXB(A,p,r-1)

if temp>=A[r]

then return temp

else return A[r]

我不完全理解使用“temp”完成的过程。如果将 MAXB(A,p,r) 更改为 MAXB(A,p,r-1) 如何与 A[ 的值进行比较r] 完全没有?根据描述,我知道该算法肯定不会做它应该做的事情:返回 A[p]A[ 之间具有最高值的项目的索引r] - 当然不会那样做,但我不确定如何将温度与任何值进行比较。

最佳答案

在我看来 temp 是一个变量。


它对您的函数进行递归调用:MAXB 并将该调用的值存储在名为 temp 的变量中。

然后检查 temp 是否大于或等于 A[r],如果是,则返回 temp。如果小于 A[r],则返回 A[r]

____________________________________________ ______________

下面是对整个函数的解释:

if p=r
then return A[p]

如果 pr 相等,则 A[p]A[r] 之间只有一个值,因此,该值是最大的,您将返回该值。

else 
temp<-----MAXB(A,p,r-1)

您使用自己的函数 MAXB 获得 A[p]A[r-1] 之间的最大值,并且您将其存储在 temp

if temp>=A[r]
then return temp
else
return A[r]

您将 A[p]A[r-1]A[r] 之间的最大值进行比较。无论哪个较大,都必须是 A[p]A[r] 之间的最大值,因此是您要返回的值。

关于arrays - 在伪代码中使用 'temp',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com