Page 31 -
P. 31

하지만 삽입만큼은 배열과 집합이 다르다. 배열에서 최선의 시나리오였던 맨 끝에 삽입하는 경우
               를 먼저 생각해 보자. 배열에서 컴퓨터는 1단계로 값을 끝에 삽입했다.

               하지만 집합에서는 먼저 이 값이 이미 집합에 들어 있는지 결정해야 한다. 중복 데이터를 막는 게
               바로 집합의 역할이기 때문이다.

               컴퓨터는 새 데이터가 집합에 없다고 어떻게 확신할까? 앞서 말했듯이 컴퓨터는 배열이나 집합의
               셀에 어떤 값이 들어 있는지 바로 알 수 없다. 그러니 삽입하려는 값이 집합에 이미 있는지부터 먼
               저 검색해야 한다. 집합에 새 값이 없을 때에만 컴퓨터는 삽입을 허용한다.

               따라서 모든 삽입에는 검색이 우선이다.

               예제로 살펴보자. 이전 예제의 쇼핑 목록을 집합이라고 가정해 보자. 현실적으로 같은 물건
               을 중복 구매하지는 않으므로 적절한 선택이라 할 수 있다. 집합이 ["apples", "bananas",
               "cucumbers", "dates", "elderberries"]일 때 "figs"를 삽입하려면, 먼저 검색을 1번 수행한

               후 다음의 단계를 거쳐야 한다.
               1단계: 인덱스 0에서 "figs"를 검색한다.


                  그림 1-20











               비록 인덱스 0에는 없지만 집합 내 다른 곳에 있을 수 있다. 삽입하려면 먼저 "figs"가 어디에도

               없음을 확실히 알아야 한다.
               2단계: 인덱스 1을 검색한다.


                  그림 1-21















         044
   26   27   28   29   30   31   32   33