这是一个非常直截了当的问题: 在本地搜索200-300个字符串数组需要多长时间?远程怎么样?
答案 0 :(得分:2)
如果您正在搜索字母字符串,并且搜索时间过长,您可以尝试将字符串列表转换为DAWG(定向非循环字图,易于谷歌)。我做了很长的清单(大约170,000字),并且改进率达到了18,000。
jrdoner
答案 1 :(得分:1)
搜索?在什么意义上?
如果您只是在跑步:
[myStringArray containsObject:searchString];
然后可以在几微秒内搜索200-300个字符串。
如果您正在搜索:
BOOL found = NO
for (NSString *string in myStringArray)
{
if ([string rangeOfString:searchString].location != NSNotFound)
{
found = YES;
break;
}
}
然后它几乎完全取决于每个字符串的长度,但对于少于几十个字符的字符串,它与之前的搜索速度大致相同。
远程搜索完全不同 - 但这样的操作是一个巨大的浪费时间。它完全基于网络延迟。平均250毫秒ping,远程操作的平均时间大约是半秒或更长,因为生成网络数据包需要很长时间,通过网络发送,等待远程服务器接收,等待远程操作要处理的服务器,等待响应并解析响应。
如果这个问题是一个问题:我应该只获取所有30个字符串并在本地搜索 - 然后:是的,在本地搜索。一般来说:本地搜索更快,直到下载所有结果成为负担(超过3G,我通常认为快速透明下载的最大值为50kB)。
答案 2 :(得分:1)
微秒。它非常快。当我发现这一点时,我也很惊讶:p
答案 3 :(得分:0)
这是关于本地字符串搜索。
我已经实现了Trie数据结构来索引 fast 自动完成的字符串。 http://en.wikipedia.org/wiki/Trie