android - iOS 和 Android 测试单词正确性的效率

标签 android ios iphone performance search

我有一个依赖于单词的应用程序想法...我仍处于游戏设计阶段,并且担心测试单词的正确性。根据我的研究,一个英语单词数据库大约有 50K+。

考虑到 iPhone、iPad 或 Android 的强大功能,我是否需要为这些数据创建某种树形哈希,或者一个数组就足够了?我以前从未真正接触过这么大的东西......

我知道ios有一个搜索数组的方法...

BOOL isTheObjectThere = [myArray containsObject: @"my string"];

这会让我的生活变得轻松,但我不确定这在现实世界中是否有效。

接下来几个月我都没有 Android 或 iOS 的开发环境,我的主要平台将是 iOS,然后是 Android,因此使用 Objective-C 代码引用。

第一次回答后编辑:

我找到了 objective-c 的二进制搜索方法,一旦我对我的开发环境进行排序,肯定会试一试。

NSArray *sortedArray = ... // must be sorted
id searchObject = ...
NSRange searchRange = NSMakeRange(0, [sortedArray count]);
NSUInteger findIndex = [sortedArray indexOfObject:searchObject 
                                    inSortedRange:searchRange
                                    options:NSBinarySearchingFirstEqual
                                        usingComparator:^(id obj1, id obj2)
                                        {
                                            return [obj1 compare:obj2];
                                        }];

最佳答案

平台对您的问题并不重要。

如果您将字典存储在按字母顺序排序的数组中,那么您可以在 O(log n) 中测试一个单词,这对于 n=50k 大约需要 15 个步骤。

关于android - iOS 和 Android 测试单词正确性的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22006356/

相关文章:

ios - 跟踪用户当前位置后的 Google map myLocation 按钮颜色 - ios

iphone - 为什么在 -dealloc 中注销通知接收器会在 ARC 下创建无限循环?

iphone - Vine 喜欢使用 PhoneGap 录制视频

java - Android - 保留方向变化的数据

android - 构建一个简单的键盘记录器 Android 应用程序 : Accessibility research for Virtual keyboard

ios - 从 Xcode Swift 重新启动应用程序后不再发送推送通知

iphone - UIScrollView可以zoomToRect吗?

iphone - 如何裁剪 objective-c 中的图像?

android - 如何在 flutter 中绘制自定义动态高度弯曲形状?

android - 如何解决 AAPT2 错误?