티스토리 뷰

array

고정된 데이터 크기

연속된 데이터

선언된 배열에는 데이터가 저장된 메모리의 맨 첫번째 주소를 가지고 있게 된다.

배열의 타입에 따라서, 다음 데이터의 시작 위치를 알 수 있다.

int arr[5] = {1,3,4,6,8}

일때 arr[1] 을 꺼낸다고 하면, int 자료형은 4byte이므로, arr에 저장된 주소에서 4byte만큼의 크기만큼 더해서 그곳에서 4byte 만큼의 자료를 꺼내오게 된다. 그 값이 바로 3이된다.

RandomAccess

메모리에 저장된 데이터에 접근하기 위해서는 주소값을 알아야 한다. 배열 변수는 자신이 할당받은 메모리의 첫 번째 주소깂을 가진다. 배열은 연속적/순자척으로 저장되어있기 때문에, 첫 주소값만 알고 있다면 어떤 인덱스에서 즉시 접근이 가능하다. 이를 Direct Access 또는 Random Access라고 부른다. 배열의 경우 아무리 긴 배열이더라도 한 번의 연산으로 원하는 데이터에 바로 접근이 가능하다. 시간 복잡도가 그래서 O(1)이다

한계

선언시에 정한 size보다 많은 데이터를 저장해야 하는 경우 공간이 남아있지 않아서 문제가 발생할 수 있다. 그렇다고 크기가 엄청 큰 배열을 선언하면 그만큼 메모리를 많이 차지한다. 이런 문제점을 해결할 수 있는 것이 바로 dynamic array다


Uploaded by N2T

'코딩테스트 준비 > 자료구조' 카테고리의 다른 글

동적 배열 Dynamic Array  (1) 2023.04.09
배열의 코테 적용방법  (1) 2023.04.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함