小编use*_*519的帖子

二分查找边界

我总是遇到最困难的时候,而且我还没有看到对所谓如此普遍和高度使用的东西的明确解释。

我们已经知道标准的二分搜索。给定起始下限和上限,在 (lower + upper)/2 处找到中间点,然后将其与您的数组进行比较,然后相应地重新设置边界,等等。

但是,调整搜索以查找所需的差异是什么(对于按升序排列的列表):

  1. 最小值 >= 目标
  2. 最小值 > 目标
  3. 最大值 <= 目标
  4. 最大值 < 目标

似乎这些情况中的每一个都需要对算法进行非常小的调整,但我永远无法让它们正常工作。我尝试更改不等式、返回条件、更改边界的更新方式,但似乎没有任何一致。

处理这四种情况的最终方法是什么?

algorithm binary-search

11
推荐指数
2
解决办法
2572
查看次数

在 Scala 中制作一个非常基本的二叉树

我正在尝试在 Scala 中制作一个非常简单的二叉树,用于数据存储和遍历。

现在我有:

trait Tree
case class Node(left: Tree, value: String, right: Tree) extends Tree
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 我怎样才能包含一个指向父级的指针?

  2. 我可以以任何方式将左指针和右指针设置为空吗?或者根节点的父指针?

  3. 我怎样才能真正遍历这棵树?

  4. 更新节点的值容易吗?

tree binary-tree scala

3
推荐指数
1
解决办法
9086
查看次数

标签 统计

algorithm ×1

binary-search ×1

binary-tree ×1

scala ×1

tree ×1