【发布时间】:2021-10-27 04:51:33
【问题描述】:
在二分查找while循环中:
left, right = 0, len(nums)
while left < right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
为什么在 Python 以外的某些语言中使用 mid = (left + (right - left)) // 2 比使用 mid = (left + right) // 2 更好?
编辑:好像我的括号弄错了。感谢您指出这一点,它对我来说更清楚了。我会这样离开,以防其他人偶然发现。我在 youtube 视频中看到了这句话,但这个人从未解释过为什么一个会比另一个更好。谢谢大家的回答!
谢谢大家!
【问题讨论】:
-
这是您从其他来源读到的内容吗?你应该链接到它
-
这两个在我知道的任何语言中都不一样。
-
如果有的话,你的意思是:
mid = left + (right - left) // 2 -
同意@user2390182 你的意思是mid = left + (right - left) // 2,这有助于避免溢出。
-
这能回答你的问题吗? Midpoint Formula Overflow Error
标签: python binary-search