【问题标题】:Sorting 2D array or sorting 1D + Linear search.对 2D 数组排序或对 1D 排序 + 线性搜索。
【发布时间】:2012-08-28 18:06:03
【问题描述】:

只是一个简单的问题。

哪个选项更有效?

  1. 对二维数组进行排序(数组第 1 维中的每个值都与第 2 维中的值相关联,因此它们必须按 [值和 ID 号] 进行同等排序)。

  1. 对一维数组进行排序,然后将值与另一组值进行比较(使用线性搜索),以检查它们是否匹配(以查找每个值对应的 ID 号)。

所有值都保证是不同的,所以没有重复数字的问题。就算有也没关系。

有没有办法找出这两种方法在调试器中的效率?

感谢大家的宝贵时间。 =]

Seb

【问题讨论】:

  • 需要查找多少次值?如果您只需要查找一次,则跳过排序。如果您需要多次查找,请对两个维度进行排序并使用二分搜索进行搜索。

标签: java arrays performance search sorting


【解决方案1】:

我认为在使用比较器的帮助下使用 2D 数组排序技术会更有效。在这种技术中,数组按每个 2D 数组的一个比较单位一次性排序,而在第二种方法中,您首先对 1D 数组进行排序,然后再次搜索以映射关联的值。

示例:sorting 2D array of String in java

对于上述两种方法,您可以通过在排序前和排序后打印时间戳来尝试自己排序所需的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2012-11-27
    • 2015-06-26
    • 1970-01-01
    相关资源
    最近更新 更多