gpt4 book ai didi

algorithm - 为什么二进制搜索 while 循环条件(l+1!= u)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:43 25 4
gpt4 key购买 nike

a = (1..10).to_a
def search(x, t)
l = -1
u = x.length

while l+1 != u
m = (l + u) / 2.round
if x[m] < t
l = m
else
u = m
end
puts "l:\t#{l} u:\t #{u} m:\t#{m}"
end

p = u
puts "p: #{p} -> #{x[p]}"
if p >= x.length || x[p] != t
p = -1
end
end

search(a, 5)

我研究了很久,但找不到原因,

  1. l = -1

    why initial assign the l to -1

  2. while循环条件为什么是l+1 != ul < u

想明白那个方法,终于吃不下了

可以帮助我吗? 😃

最佳答案

lu 是二分查找的低位和高位。

在这里,您将 l 分配给 -1,将 u 分配给 x.length。您可以轻松地将 l 的赋值从 -1 更改为 0,并将条件 l+1 != u 更改为 l < u

关于algorithm - 为什么二进制搜索 while 循环条件(l+1!= u)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43156330/

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