Page 31 -
P. 31
하지만 삽입만큼은 배열과 집합이 다르다. 배열에서 최선의 시나리오였던 맨 끝에 삽입하는 경우
를 먼저 생각해 보자. 배열에서 컴퓨터는 1단계로 값을 끝에 삽입했다.
하지만 집합에서는 먼저 이 값이 이미 집합에 들어 있는지 결정해야 한다. 중복 데이터를 막는 게
바로 집합의 역할이기 때문이다.
컴퓨터는 새 데이터가 집합에 없다고 어떻게 확신할까? 앞서 말했듯이 컴퓨터는 배열이나 집합의
셀에 어떤 값이 들어 있는지 바로 알 수 없다. 그러니 삽입하려는 값이 집합에 이미 있는지부터 먼
저 검색해야 한다. 집합에 새 값이 없을 때에만 컴퓨터는 삽입을 허용한다.
따라서 모든 삽입에는 검색이 우선이다.
예제로 살펴보자. 이전 예제의 쇼핑 목록을 집합이라고 가정해 보자. 현실적으로 같은 물건
을 중복 구매하지는 않으므로 적절한 선택이라 할 수 있다. 집합이 ["apples", "bananas",
"cucumbers", "dates", "elderberries"]일 때 "figs"를 삽입하려면, 먼저 검색을 1번 수행한
후 다음의 단계를 거쳐야 한다.
1단계: 인덱스 0에서 "figs"를 검색한다.
그림 1-20
비록 인덱스 0에는 없지만 집합 내 다른 곳에 있을 수 있다. 삽입하려면 먼저 "figs"가 어디에도
없음을 확실히 알아야 한다.
2단계: 인덱스 1을 검색한다.
그림 1-21
044