2012-09-04 78 views
0

只是一個簡單的問題。排列2D陣列或排序1D +線性搜索。

哪個選項會更有效率?

  1. 對二維數組排序(數組第一維中的每個值都鏈接到第二個值,因此它們必須以[值和ID號]相同的順序排列)。

  1. 排序一維數組,然後比較(使用線性搜索)的值對另一組值,以檢查它們是否匹配(爲了找到的ID號對應於每個值)。

所有的值都保證不同,所以沒有數字重複的問題。即使有沒有關係。

有沒有找到兩種方法在調試器中有效的方法?

謝謝大家的時間。 =]

的Seb

+0

你需要多少次查看價值?如果您只需要查找一次,則跳過排序。如果您需要多次查找,然後對兩個維度進行排序並使用二進制搜索進行搜索。 –

回答

0

我認爲使用具有使用比較器的幫助下,2D陣列排序技術將是更加高效。在這種技術中,數組按照每個二維數組的一個單位進行排序,在第二種方法中,您首先對一維數組進行排序,然後再次搜索以映射關聯的值。

例如:sorting 2D array of String in java

您可以嘗試通過排序和前兩種以上方法排序後打印時間戳整理自己所需要的時間。