배열이 0부터 시작하는 이유

지식저장공간·2023년 2월 8일
0

자료구조

목록 보기
4/17
post-thumbnail

Array

Why?

Array는 2가지 요소로 표현할 수 있다.
1. 메모리에서 Array의 시작주소
2. Array에 저장되는 item의 자료형 크기

Array는 포인터이다.
포인터 : 컴퓨터 메모리의 주소를 가리킨다.

16진수 형태로 메모리 주소값을 가리킨다.

int[] arr = {1,2,3,4,5};
// 메모리에 연속적으로 4byte씩 차지하게 된다.

// 참조주소 = 시작주소 + 자료형의크기 * 인덱스 (오프셋)
// 참조주소: 1024+4*0, 1024+4*1, 1024+4*2...
// 즉, 인덱스가 0부터 시작하면 인덱스와 오프셋이 일치하게 된다.
// 프로그래밍 언어가 연산하기 쉽고, 컴파일 속도가 향상되기 때문이다.

Array 장점

Array의 길이, 사이즈가 아무리커도 똑같은 속도로 각인덱스의 item을 가져올 수 있다. O(1)
해당 인덱스에 존재하는 item을 가져오기 위해 참조주소의 값을 인덱스를 통해 1번만 연산하면 바로 접근이 가능하다.

이를 통해 Hash가 등장한다.

출처 : 쉬운코드 유튜브
이미지 : log2base2.com

profile
발전하는 개발자가 꿈입니다. 지식을 쌓고 지식을 활용해 목표 달성을 추구합니다.

0개의 댓글