2012-09-04 34 views
0

只是一个简单的问题。排列2D阵列或排序1D +线性搜索。

哪个选项会更有效率?

  1. 对二维数组排序(数组第一维中的每个值都链接到第二个值,因此它们必须以[值和ID号]相同的顺序排列)。

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

所有的值都保证不同,所以没有数字重复的问题。即使有没有关系。

有没有找到两种方法在调试器中有效的方法?

谢谢大家的时间。 =]

的Seb

+0

你需要多少次查看价值?如果您只需要查找一次,则跳过排序。如果您需要多次查找,然后对两个维度进行排序并使用二进制搜索进行搜索。 –

回答

0

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

例如:sorting 2D array of String in java

您可以尝试通过排序和前两种以上方法排序后打印时间戳整理自己所需要的时间。