我有一个关于排序数组的问题。
之后哪种方法sortedArrayUsingDescriptors
有效?
冒泡排序或快速排序等?
还是另一种算法?
有人可以帮助我吗?
我有一个关于排序数组的问题。
之后哪种方法sortedArrayUsingDescriptors
有效?
冒泡排序或快速排序等?
还是另一种算法?
有人可以帮助我吗?
这是一个简单的例子:
NSSortDescriptor *country = [[NSSortDescriptor alloc] initWithKey:@"country" ascending:YES];
NSSortDescriptor *city = [[NSSortDescriptor alloc] initWithKey:@"city" ascending:YES];
NSArray *sorted = [bag sortedArrayUsingDescriptors:[NSArray arrayWithObjects: country, city, nil]];
NSSortDescriptor API 没有指定算法(甚至,像几乎所有的 Cocoa API 一样,Big-O 复杂性保证)。您应该假设使用的排序算法是一个实现细节。但是,您可能还应该假设在运行时选择使用的算法以获得最佳性能。除非您对时间或内存复杂性有严格要求,否则您应该使用公共 API,并让 Apple 的框架作者担心细节。
如果您有复杂性要求,您可能会发现 CHDataStructures 框架有助于编写您自己的收集/排序实现。