배열의 요소를 검색 할 때 .contains()
메서드를 사용할 수 있습니다. 내가 알고 싶은 것은 그것이 작동하는 방법입니다. 바이너리 검색 또는 순차 검색 또는 완전히 다른 작업을 수행합니까?신속한 .contains (element : _) 메소드는 어떻게 작동합니까?
1
A
답변
0
contains(_:)
방법은 Sequence
에 정의되어있다 (프로토콜 확장에 의해 제공됨). Sequence
은 내용의 안정성에 대한 가정을하지 않으며 임의 액세스를 제공하지 않으므로 캔트은 선형 검색 이상을 수행합니다. Collection
은 무작위 액세스를 제공하므로 최소한 바이너리 검색을 구현할 수는 있지만 내용을 정렬해야한다는 보장이 필요합니다.
proposal for adding binary search to the Swift Standard Library이 있다는 것은 이미 이진 검색 방법이 없다는 또 다른 좋은 징후입니다.
그러나 Array
(내용이 정렬 됨)을 NSArray
으로 캐스팅하고 this method을 사용하여 이진 검색을 수행 할 수 있습니다.
관련 문제
- 1. contains 메소드는 어떻게 일치합니까?
- 2. ReflectionFunction의 메소드는 어떻게 작동합니까?
- 3. "managedObjectContext"메소드는 어떻게 작동합니까?
- 4. PHP DOM get contains element
- 5. 파이썬 클래스의 메소드는 어떻게 작동합니까?
- 6. java.lang.Thread 정적 메소드는 어떻게 작동합니까?
- 7. Java의 comapareTo 메소드는 어떻게 작동합니까?
- 8. java의 hashCode() 메소드는 어떻게 작동합니까?
- 9. ArrayList의 get 메소드는 어떻게 작동합니까?
- 10. 이 Ruby 클래스의 델리게이트 메소드는 어떻게 작동합니까?
- 11. Java의 join() 메소드는 어떻게 작동합니까? 얻은
- 12. 레일스의 클래스 메소드는 성능면에서 어떻게 작동합니까?
- 13. Java에서 Future의 get 메소드는 어떻게 작동합니까?
- 14. 이 프로그램에서 keyPressEvent 메소드는 어떻게 작동합니까?
- 15. pthread_key_t 및 pthread_key_create 메소드는 어떻게 작동합니까?
- 16. Nodejs의 Couchbase - add() 메소드는 어떻게 작동합니까?
- 17. Java reflection : Method.getGenericXXXXX 메소드는 어떻게 작동합니까?
- 18. Android BaseExpandableListAdapter - getView 메소드는 어떻게 작동합니까?
- 19. 이 AffineTransform 회전 메소드는 어떻게 작동합니까?
- 20. API 24 AccessibilityService.dispatchGesture() 메소드는 어떻게 작동합니까?
- 21. Java ArrayList의 contains() 메소드는 바이너리 검색을 사용합니까?
- 22. NSScanner는 신속한 문자열로 작동합니까?
- 23. scipy.stats. <distribution> .fit 메소드는 어떻게 작동합니까?
- 24. jQuery .unbind() 메소드는 jQuery 생성 이벤트에서만 작동합니까?
- 25. Java getResource 메소드는 특정 확장에서만 작동합니까?
- 26. jQuery의 show() 메소드는 IE의 테이블에서 작동합니까?
- 27. RailsAdmin.authorize_with 메소드는 어떻게 사용합니까?
- 28. onUpgrade() 메소드는 어떻게 생겼을까요?
- 29. 메소드는 컴포넌트와 어떻게 연결됩니까?
- 30. 익명의 메소드는 어떻게 구현됩니까?
구현 세부 사항으로 간주되어야하지만 임의의 (정렬 된 것은 아님) 배열에서 작동하므로 이진 검색을 사용할 수 없습니다. 정말 궁금하신 분은 Swift 소스 코드에서 찾으십시오! –