NSComparisonResult的复杂性是什么? [采访后]

时间:2014-10-16 19:14:48

标签: ios objective-c

在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;
   }

   }];

那种复杂性是什么?

1 个答案:

答案 0 :(得分:0)

据推测,他们正在使用引擎盖下的二叉树,制作这个O(nlogn)。这是假设我记得12年前我所教的东西(并且从那时起就没有使用过)。

顺便说一句,NSComparisonResult是块的返回值,而不是函数的名称。