Java 在多维数组中搜索和替换的最有效方法
在多维未排序数组中搜索和替换元素、保留结构而不将其转换为另一个数据结构的最佳方法是什么Java 在多维数组中搜索和替换的最有效方法,java,algorithm,search,multidimensional-array,replace,Java,Algorithm,Search,Multidimensional Array,Replace,在多维未排序数组中搜索和替换元素、保留结构而不将其转换为另一个数据结构的最佳方法是什么 我最好是在Java中寻找一个不使用任何特定于语言的库的解决方案。如果您有一个未排序的集合/数组,那么您不会比O(n)可靠地做得更好,因为您无法预测正在进行的元素,这意味着您必须遍历每个元素 这就是保持排序的集合存在的原因。遍历每个项目并检查它是否与搜索项匹配,然后修改该索引,不是O(n)吗?(这个问题更倾向于其他SO用户)@MikeKoch:取决于n是什么。如果您指的是矩阵的总大小,那么是的。根据“替换”的含
我最好是在Java中寻找一个不使用任何特定于语言的库的解决方案。如果您有一个未排序的集合/数组,那么您不会比O(n)可靠地做得更好,因为您无法预测正在进行的元素,这意味着您必须遍历每个元素
这就是保持排序的集合存在的原因。遍历每个项目并检查它是否与搜索项匹配,然后修改该索引,不是O(n)吗?(这个问题更倾向于其他SO用户)@MikeKoch:取决于
n
是什么。如果您指的是矩阵的总大小,那么是的。根据“替换”的含义,您可以在遍历矩阵时执行修改。这样它将保持在O(n)
通常任何线性都是O(n)
。如果你遍历一个10个元素的数组,并进行10次比较,这是O(n)
@YonatanN true,但如果我没记错的话,它并不总是正确的(注意:可靠地说)@Rogue它不是(尽管你可以通过多次运行它来任意地做出不正确的答案)。但既然我们已经在这里了:其他的计算模型允许更大的魔力,比如恒定时间内任意数量的工作。诚然,这些都不太可能在物理上实现。