【发布时间】:2015-04-16 09:11:16
【问题描述】:
我有一个包含 200 000 行整数的数组(包含较小的整数数组)。每行包含 1 - 20 个成员。整数的值是 0-200。看起来像这样:
...
[42, 66, 54, 145, 183, 198, 104, 24, 22, 125, 127]
[71, 149, 59, 147, 115, 36, 124] // <--lets say i am searching for this line
[27, 141, 19, 75, 101, 149, 36, 7, 12, 108, 69, 149, 1, 39, 55, 87, 178, 76, 133]
[94, 170, 185, 17, 121, 42, 51, 70, 176, 187, 31, 181, 167, 200, 144, 126, 123, 120, 91, 40]
[112, 162, 173, 145, 0, 165, 106, 137]
[141, 198, 32]
...
如何在其中搜索特定的行?请指导我正确的方向,如果可能的话将我链接到示例。
我的意思是搜索 - 当我输入 71、149、59 时,我会得到我的行(如果有几行类似的行,则接近它)。
花几天时间阅读仍然不知道如何进行。请帮忙。 (我的列表按升序排序)
哪种方法更好,散列?二进制搜索?任何好的关键字或链接表示赞赏(我第一次进行搜索)
【问题讨论】:
-
如果您已经花费了几天的时间,您能否展示您的尝试并解释您遇到的具体问题。就目前而言,您要求我们为您编写它。
-
另外,最好建立一个返回“the”行的规则。也许有一条规则说“我将返回包含
someString的第一行”;它可以是您希望的复杂规则,但不要对自己引入不必要的限制。 -
@Chief 如果你为我写,我会很高兴 :) 但如果你指出我正确的方向也会很好:)
-
我不明白寻找线路的标准。它必须包含您输入的所有数字吗?我的顺序一样吗?紧挨着吗?
-
从左到右的顺序相同。但不一定是所有数字。所以输入 71 会找到很多行,输入 71、149、59 会返回几行或只返回一行。
标签: java arrays sorting search