11 个 pods
MDCDamerauLevenshtein 包含了两个用于计算 NSString 对象之间编辑距离的算法。
此库的潜在应用
-[NSString compare:options:]
来过滤搜索结果,显示具有较小编辑距离的术语。许可: MIT
类别,用于快速选择“第 n 个最大”元素,或者在数组中(未排序)选择“前 n 个”元素。
例如,如果需要在包含 100,000 个元素的数组中找到第十小的数字
```objc
// 比 definition 的 sort 和访问 -objectAtIndex:10 快 79% NSNumber *tenth = [numbers mdc_objectAtIndex:10 inSortedArrayUsingComparator:^NSComparisonResult(NSNumber *left, NSNumber *right) { return [left compare:right]; }]; ```
或者,在包含 100,000 个元素的数组中找到前十个最小的数字
objc // 比 -subarrayWithRange:NSMakeRange(0, 10) 的 sort 和访问 快 71% [numbers mdc_subarrayWithRange:NSMakeRange(0, 10) inSortedArrayUsingComparator:^NSComparisonResult(NSNumber *left, NSNumber *right){ return [left.numberOfFriends compare:right.numberOfFriends]; }];
通过使用由快速排序算法的发明者 Tony Hoare 开发的快速选择算法,实现了性能的改进。
当数组大小小于 150 个元素时,性能略有下降。对于大于 150 个元素的数组,MDCQuickSelect 优于原始方法,有时差异很大。自己运行基准测试,看看会发生什么!
许可: MIT