use*_*895 8 iphone objective-c ios
我正在为iOS应用程序实现一种自动完成功能.我用于自动填充值的数据是一个逗号分隔的文本文件,大约有100,000个字符串.这就是我现在正在做的事情:
NSArray
100,000 NSString
.[array containsObject:text]
当然,有一种更好/更快的方法来执行此查找.有什么想法吗?
das*_*ght 20
绝对有,有!但它不是"在Objective-C中":最有可能的是,你需要自己编写代码.
我们的想法是将您的字符串列表转换为后缀树,这是一种允许您非常快速地按前缀搜索的数据结构.在后缀树中搜索可能的完成非常快,但结构本身不容易构建.在互联网上快速搜索显示,目标C中没有现成的实现,但您可以使用另一种语言移植实现 ,使用C实现,或者如果您没有特别紧迫的时候编写自己的实现.
也许更简单的方法是按字母顺序对字符串进行排序,并对到目前为止输入的前缀运行二进制搜索.虽然效率不如后缀树,但排序数组方法对于100K字符串是可以接受的,因为你可以在17次以下的检查中找到正确的位置.
归档时间: |
|
查看次数: |
3211 次 |
最近记录: |