[Swift] Array와 Set의 속도차이
개요 알고리즘 문제를 풀던 도중.. Array와 Set을 사용했을때 많은 시간차이가 발생하는 것을 발견했다. 그 이유는 무엇일까. 간단한 실험을 통해서 얼마나 속도가 차이나는지 알아보고 이유 또한 알아보자. 실험 우선 실험에 사용할 유용한 조수를 소개한다. 코드를 클로저로 받아서 사용할 수 있는 아주 좋은 녀석이다. 코드는 이곳에서 가져왔다. 그 다음 Array와 Set에 원소 추가, 순회, 삭제를 테스트했다. 1만번 기준 속도의 차이는 다음과 같다. 순회가 속도 차이는 가장 크지만, 기준 속도의 차이 떄문에 추가가 값의 차이가 가장 많이난다. 실로 어마어마한 차이이다.. 왜 이런 차이가 나는 것일까? 이유 우선 Array와 Set의 가장 큰 차이는 이다. 코드를 보자. 보다시피 Array와 Set에 똑같은 순서로 삽입을 했지만, Array는 순차적으로 제거된 반면 Set은 랜덤하게 삭제되었다. 이러한 차이의 이유를 Array와 Set의 원소 추가, 순회, 삭제 메소드에서 살펴보자…