2011-08-10 3 views
4

현재 개체가 NSArray (정렬되지 않음)에 있는지 여부를 검색하려고합니다. 내 기대에 맞는 것을 찾을 때까지 배열을 반복하고 각 객체를 확인해야합니다.NSArray에 무언가가 있는지 검색하는 빠른 방법이 있습니까?

수표가 if 문일지라도 성능은 의심 스럽습니다.

검색 성능을 향상 시키려면 제공된 솔루션이 있습니까?

아니면 배열을 어떤 식 으로든 정렬하고 이진 검색과 같은 방법으로 사용할 수 있습니까?

답변

3

비교를 기반으로하는 정렬은 O (n * log (n)) 시간이 걸리므로 배열을 반복 할 때마다 O (n) 시간이 걸립니다 배열의 n 요소의 경우.

실용적인 해결책은 객체를 이미 알고있는 경우 NSArray # containsObject를 사용하는 것입니다.

그렇지 않으면 당신은 당신의 자신의 비교 전략을 구현하고 배열

-1

당신이 빠른 열거를 사용하여 단계별로해야합니다. 예 :

NSEnumerator * enumerator = [set objectEnumerator];

NSNumber *setObject ; 

while ((setObject = [enumerator nextObject]) != nil){ 


    [gids appendString:[NSString stringWithFormat:@"%d",[setObject intValue]]]; 

} 
+0

이것은 루프하는 법을 알려줍니다. 검색과는 아무런 관련이 없습니다. – Chuck

관련 문제