Page 16 -
P. 16

컴퓨터가 배열의 특정 인덱스에 있는 값을 읽을 때 한 번의 단계로 바로 갈 수
                      있는 데는 다음과 같은 점들이 복합적으로 작용한다.

                      1.  컴퓨터는 모든 메모리 주소에 한 번에 갈 수 있다(메인 거리 123번지까지 운
                        전해서 간다고 생각하면 쉽다. 위치를 정확히 알고 있으므로 한 번의 이동으

                        로 운전해서 갈 수 있다).
                      2.  각 배열에 저장된 내용은 메모리의 시작 주소다. 따라서 컴퓨터는 손쉽게 시
                        작 주소를 얻는다.

                      3.  배열의 인덱스는 0부터 시작한다.


                      앞선 예제에서 컴퓨터에 인덱스 3에 있는 값을 읽으라고 명령하면 컴퓨터는 다
                      음과 같은 과정을 밟는다.

                      1. 배열의 인덱스는 0부터 시작하며 인덱스 0의 메모리 주소는 1010이다.

                      2. 인덱스 3은 인덱스 0부터 정확히 세 슬롯 뒤에 있다.

                      3. 따라서 인덱스 3을 찾으려면 1010+3인 1013 메모리 주소로 간다.

                      1013이라는 메모리 주소에 접근한 컴퓨터는 "dates"라는 값을 반환한다.

                      보다시피 배열 읽기는 한 단계 만에 끝나는 매우 효율적인 연산이다. 한 단계로
                      끝나는 연산은 당연히 가장 빠른 연산 유형이다. 배열이 그토록 강력한 자료 구
                      조인 이유 중 하나는 어떤 인덱스의 값이든 빠르게 찾을 수 있기 때문이다.

                      그렇다면 컴퓨터에 인덱스 3에 들어 있는 값이 무엇인지 묻는 대신 배열이
                      "dates"를 포함하는지 물어보면 어떨까? 이를 검색 연산이라 부르며 다음 절

                      에서 알아본다.














                                                                    1장  자료 구조가 중요한 까닭   027





         algorith06.indd   27                                                  2018-06-25   오전 10:32:03
   11   12   13   14   15   16   17   18   19   20   21