【问题标题】:Most efficient way to search and replace in a multidimensional array在多维数组中搜索和替换的最有效方法
【发布时间】:2014-04-11 07:44:00
【问题描述】:

在多维未排序数组中搜索和替换元素、保留结构而不将其转换为另一个数据结构的最佳方法是什么(就 big-O 而言)?

我最好在不使用任何语言特定库的情况下寻找 Java 解决方案。

【问题讨论】:

  • 遍历每个项目并检查它是否与搜索词匹配然后修改该索引不是 O(n) 吗? (这个问题更针对其他 SO 用户)
  • @MikeKoch:取决于n 是什么。如果您的意思是矩阵的总大小,那么是的。
  • 根据“替换”的含义,您可以在遍历矩阵时执行修改。这样它会留在O(n)
  • 通常任何线性的都是O(n)。如果遍历一个 10 元素的数组,进行 10 次比较,则为 O(n)

标签: java algorithm search multidimensional-array replace


【解决方案1】:

如果你有一个未排序的集合/数组,你不会比 O(n) 做得更好,因为你无法预测进行中的元素,这意味着你必须遍历每个元素。

这就是保持排序的集合存在的原因。

【讨论】:

  • @YonatanN 是的,但如果我没记错的话,它并不总是正确的(注意:可靠)
  • @Rogue 它不是(尽管您可以通过多次运行它来任意地给出错误答案)。但既然我们已经在这里:其他计算模型允许更多的魔法,例如在恒定时间内进行任意数量的工作。诚然,这些在物理上实现的可能性要小得多。
猜你喜欢
  • 1970-01-01
  • 2021-10-08
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 2018-02-24
  • 2013-02-13
  • 1970-01-01
相关资源
最近更新 更多