我有一个NSMutabaleArray
,我想在插入任何元素后检查它是否处于排序模式。那么最快技术是什么呢?
答案 0 :(得分:1)
您需要一个循环来遍历并检查array[i+1]
是否大于array[i]
元素,假设数组按升序排序。如果失败则不进行排序。这将是O(n)。
通过使用Cocoa库: 典型的答案是再次对它进行排序,如果它已经排序,那么速度快,时间和空间复杂度不大。然后比较两个数组,如果两个数组匹配,那么你的数组就被排序了。
修改强>
以上是整数的示例。如果有对象(Cocoa对象),那么你需要决定你要比较什么类型的值,如果字符串需要检查NSOrderedDescending
,NSOrderedSam
e,NSDate
{{ 1}}等等。
答案 1 :(得分:0)
我这样做了(因为我有一个String数组)
for (int i = 1; i < array.count; i++)
if ([array[i - 1] compare:array[i]] != NSOrderedAscending)
return NO;
return YES;
所以当我调用函数时,这段代码会返回一个BOOL值。