2011-06-16 85 views
1

我需要重新组织一个NSMutableArray ...例如我的数组包含值1,2,3,4,5。 最后我需要一个数组的值(像5,1,2,3,4那样排序)。最后一个值总是先到达。重新组织NSMutableArray

我该如何做到这一点。

由于

回答

0
id anObject = [[theArray lastObject] retain]; 
[theArray removeLastObject]; 
[theArray insertObject:anObject atIndex:0]; 
[anObject release]; 

(这将运行在O(N)。实际上,从来就没有办法比O(N)用于阵列更快,虽然NSArray的可以被组织为一个双端队列当阵列在上面的代码中你可以得到O(1),这是一个不应该依赖的实现细节。)

+0

@Rob Napier-我认为NSArray根据数组大小使用不同的存储空间。不过,我看了一段时间。 – sbooth 2011-06-16 20:23:42

+0

这比O(N)快得多。我认为它是O(1),但它可能是O(log N)(它可以取决于数组的大小,根据大小获取不同的方式)。 NSMutableArray没有在传统数组内部实现。 – 2011-06-16 20:23:54

+0

@sbooth,是的;我把我的大脑置于如何实施的过程中,删除了我原来的评论。它肯定会在某个时候重新构建自己(在Mac上我记得有成千上万)。 – 2011-06-16 20:24:51