【问题标题】:Binary Search Fundamentals [duplicate]二分搜索基础[重复]
【发布时间】:2021-11-14 09:21:57
【问题描述】:

我很难理解何时使用:

而(左

而(左

左=中 有时我们会使用

左=中+1; 类似

右=中;对比 右 = 中 - 1; 我在二分搜索的知识中缺少任何基础知识吗?

【问题讨论】:

  • 如果你展示你的整个实现,谈论起来会更容易。
  • 你指的是什么实现? Wiki 页面包含一些具有自身特点的 BS 例程。
  • 这一切都取决于。算法不是单独存在的,也不是为自己而存在的。它们经过精心设计以解决特定问题。如果没有特定的问题陈述,就无法知道为什么使用特定条件。例如,您可以假设目标值必须存在于数组中或不存在。您可以假设可能有重复或没有。如果它们可以存在,您可能希望找到它们中的第一个或任何一个。等等……

标签: algorithm data-structures binary-search


【解决方案1】:

而(左

在这种情况下,迭代不会停止,直到满足条件,即如果左边的值小于右边的值,则停止迭代。

while (left

在这种情况下,当两个条件之一满足时,迭代将停止,第一个条件是左边的值小于右边的值,第二个条件是左边的值等于权利的价值。如果满足这两个条件之一,则迭代将被关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 2012-03-16
    相关资源
    最近更新 更多