在这种情况下,哪种搜索算法更好用?

时间:2014-08-25 12:43:20

标签: arrays algorithm search

我需要通过" zone"找到元素,这是一个数组:

0: Array[2]
 0: Object
   busyLinesCount: 4
   zone: 7
 1: Object
   busyLinesCount: 4
   zone: 12
1: Array[2]
 0: Object
   busyLinesCount: 4
   zone: 7
 1: Object
   busyLinesCount: 4
   zone: 12
2: Array[2]
 0: Object
   busyLinesCount: 4
   zone: 8
 1: Object
   busyLinesCount: 4
   zone: 13

我认为这只是在循环中搜索更好,但我不是很确定!

我真的很感谢你的帮助!

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您只需要找到具有单个区域值的对象,那么当然,您无法做到比单个循环更好的任何事情。

如果您有多个查询,则可以创建一个列表数组,其中table[zone_number]是区域等于zone_number的对象列表。然后,对于每个zone_number,您可以实现查找整个列表的O(1)复杂度。或者,如果区域编号稀疏和/或它们的值可能很大,您可以创建一个地图(字典)而不是数组,并使用几乎相同的语法实现O(log [number of distinct zones])复杂性。