1. 배열이란?
- 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
- 같은 종류의 데이터를 순차적으로 저장
2. 배열의 읽기
- 배열에서 읽기는 딱 한단계다. 특정 인덱스를 통해 한 번에 접근 가능하기 때문이다.
- 컴퓨터의 메모리는 셀로 구성된 거대한 컬렉션이라 할 수 있다. 프로그램에서 배열을 선언하면 컴퓨터는 프로그램이 쓸 수 있는 연속된 빈 셀들의 집합을 할당한다. 컴퓨터 메모리 내에 각 셀에는 특정 주소가 있다. 각 셀의 메모리는 앞 셀의 주소에서 1씩 증가한다.
- 컴퓨터가 배열의 특정 인덱스에 있는 값을 읽을 때 한 번의 단계로 바로 갈 수 있는 것은 아래와 같은 점들이 복합적으로 작용한다.
- 컴퓨터는 모든 메모리 주소에 한 번에 갈 수 있다.
- 각 배열에 저장된 내용은 메모리의 시작 주소이다. 따라서 컴퓨터는 손쉽게 시작 주소를 얻는다.
- 배열의 인덱스는 0부터 시작한다.
만약 컴퓨터에 인덱스 3에 있는 값을 읽으라고 명령하면 컴퓨터는 다음과 같은 과정을 밟는다.
- 배열의 인덱스는 0부터 시작하며 인덱스 0의 메모리 주소는 1010이다.
- 인덱스 3은 인덱스 0부터 정확히 세 슬롯 뒤에 있다.
- 따라서 인덱스 3을 찾으려면 1013 메모리 주소로 간다.
3. 배열의 검색, 삽입, 삭제
- 시간복잡도가 O(N)이다. 읽기보다 덜 효율적이다.
4. 장단점
- 장점 : 인덱스를 통해 빠른 접근이 가능하다
- 단점 : 어느정도 공간을 미리 설정해야 되기 때문에 데이터 추가/삭제가 어렵다
** 패스트캠퍼스의 '알고리즘/기술면접 완전 정복 올인원 패키지' 강의를 듣고 작성한 글입니다
'TIL > Data Structures and Algorithms' 카테고리의 다른 글
(자료구조) 스택 (0) | 2021.02.04 |
---|---|
(자료구조) 큐(QUEUE) (0) | 2021.02.03 |
(알고리즘) 최단경로 알고리즘 - 다익스트라 알고리즘 (0) | 2021.01.29 |
(알고리즘) 탐욕 알고리즘 (0) | 2021.01.28 |
(알고리즘) 깊이우선탐색 (DFS) (0) | 2021.01.28 |