🔥 그림으로 쉽게 배우는 자료 구조와 알고리즘
자바스크립트 실행 환경 구축
📍 vsCode, node.js
🔥 그림으로 쉽게 배우는 자료 구조와 알고리즘
배열
📍 프로그래밍 언어에서의 배열
👉🏻 프로그래밍 언어에서 제공하는 배열은 배열을 선언할 때 크기를 같이 할당해 줌
👉🏻 int arr[10] = {1, 2, 3, 4, 5}라면 열 개의 연속된 공간에 배열을 넣고, 남은 배열에는 쓰레기 값을 넣어 놓음
👉🏻 운영체제는 배열의 시작 주소만 기억하고 그 외의 값은 인덱스로 접근함
👉🏻 배열의 인덱스 참조는 길이에 상관없이 한 번에 가져옴 =. O(1)의 성능을 가짐
👉🏻 읽기, 쓰기와 같은 참조에서 좋은 성능을 보임
👉🏻 삽입, 수정, 삭제에서의 성능은 좋지 않음
기존에 할당된 데이터가 있고, 해당 크기에 맞춰서 메모리를 할당했으므로 그 이상의 값은 다른 곳에서 유의미한 값일 수 있음
그렇기 때문에 운영체제는 추가된 공간이 더해진 만큼 비어 있는 메모리를 새로 찾아야 하고, 기존 값을 복사도 해 줘야 함
처음부터 배열을 크게 설정해 놓는다면, 불필요하게 메모리를 낭비할 수도 있음
📍 자바스크립트에서의 배열
👉🏻 상황에 따라서 연속적, 불연속적으로 메모리 할당
대부분은 불연속적으로 할당하여 내부적으로 연결 후 사용자에게는 배열인 것처럼 보이게 함