各种NSArray排序方法中使用的排序算法是否稳定?(即它们是否是“稳定排序”算法,其中具有相同排序键的项目保留其相对顺序。)
各种NSArray排序方法中使用的排序算法是否稳定?(即它们是否是“稳定排序”算法,其中具有相同排序键的项目保留其相对顺序。)
NSSortStable
。从NSSortOptions的文档中可知:
NSSortStable
指定排序结果应返回在原始顺序中具有相等值的比较项目。
如果未指定此选项,则可能或可能不会以其原始顺序返回等效对象。
如果您需要保证稳定排序,请尝试以下内容:
[array sortWithOptions:NSSortStable usingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];
}];
(void)sortWithOptions:usingComparator:
可用于可变数组... 如果你更喜欢的话,也有 (NSArray *)sortedArrayWithOptions:usingComparator:
- wxactly NSArray
的排序方法不稳定。NSSortOptions
的文档后面:https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/Reference/reference.html#//apple_ref/doc/c_ref/NSSortOptions - wxactly