在NSArray上调用的NSComparisonResult的复杂性是什么?
如果我打电话
NSArray *sorted = [[set allObjects] sortedArrayUsingComparator:^NSComparisonResult(Point pt1, Point pt2) {
float distance1 = [pt1 distanceToPoint:origin];
float distance2 = [pt2 distanceToPoint:origin];
if (distance1 < distance2) {
return NSOrderedAscending;
}
else if (distance1 > distance2) {
return NSOrderedDescending;
}
else if (distance1 == distance2) {
return NSOrderedSame;
}
}];
那种复杂性是什么?
答案 0 :(得分:0)
据推测,他们正在使用引擎盖下的二叉树,制作这个O(nlogn)。这是假设我记得12年前我所教的东西(并且从那时起就没有使用过)。
顺便说一句,NSComparisonResult
是块的返回值,而不是函数的名称。