检查 NSArray 是否排序
Check NSArray is sorted
我有一个 NSMutabaleArray
,我想检查它在插入任何元素后是否处于 排序模式 。那么,最快 的技术是什么?
你需要一个循环遍历并检查array[i+1]
是否大于第array[i]
个元素,假设数组是按升序排列的。如果失败,则不会对其进行排序。这将是 O(n)。
通过使用 Cocoa- 库:
典型的答案是再次对它进行排序,如果它已经排序那么那会很快,时间不多并且 space complexity.Then 比较两个数组,如果两个都匹配那么你的数组就被排序了。
编辑:
以上是整数的示例。如果对象(Cocoa 对象)在那里,那么你需要决定你想要比较什么样的值,如果字符串则需要检查 NSOrderedDescending
, NSOrderedSam
e , for NSDate
isGreater
等
我这样做了(因为我有一个字符串数组)
for (int i = 1; i < array.count; i++)
if ([array[i - 1] compare:array[i]] != NSOrderedAscending)
return NO;
return YES;
所以这段代码 returns 当我调用函数时我得到一个 BOOL 值。
我有一个 NSMutabaleArray
,我想检查它在插入任何元素后是否处于 排序模式 。那么,最快 的技术是什么?
你需要一个循环遍历并检查array[i+1]
是否大于第array[i]
个元素,假设数组是按升序排列的。如果失败,则不会对其进行排序。这将是 O(n)。
通过使用 Cocoa- 库: 典型的答案是再次对它进行排序,如果它已经排序那么那会很快,时间不多并且 space complexity.Then 比较两个数组,如果两个都匹配那么你的数组就被排序了。
编辑:
以上是整数的示例。如果对象(Cocoa 对象)在那里,那么你需要决定你想要比较什么样的值,如果字符串则需要检查 NSOrderedDescending
, NSOrderedSam
e , for NSDate
isGreater
等
我这样做了(因为我有一个字符串数组)
for (int i = 1; i < array.count; i++)
if ([array[i - 1] compare:array[i]] != NSOrderedAscending)
return NO;
return YES;
所以这段代码 returns 当我调用函数时我得到一个 BOOL 值。