배열
- 가장 기본적인 자료구조.
- 여러 개의 변수를 담는 공간으로 이해할 수 있다.
<aside>
😀 약간 같은 성질의 갖는 요소들을 넣을 때 사용한다.
</aside>
- 특정한 인덱스에 직접적으로 접근 가능 ⇒ 수행 시간 O(1) 상수시간
배열의 특징
- 컴퓨터의 메인 메모리에서 배열의 공간은 연속적으로 할당된다.
- 장점 : 캐시 히트 가능성이 높으며, 조회가 빠르다. (특정 인덱스에 접근할때는 상수 시간이 걸린다.)
- 단점 : 배열의 크기를 미리 지정해야 하는 것이 일반적이므로, 데이터의 추가 및 삭제에 한계가 있다.
- 보통 배열의 크기를 미리 지정해 놓고 사용하기 때문
링크드 리스트
- 연결 리스트는 컴퓨터의 메인 메모리 상에서 주소가 연속적이지 않다.
- 배열과 다르게 크기가 정해져 있지 않고, 리스트의 크기는 동적으로 변경 가능
- 장점 : 포인터를 통해 다음 데이터의 위치를 가리킨다는 점에서 삽입과 삭제가 간편하다.
- 단점 : 특정 번쨰의 원소를 검색할 때는 앞에서 부터 원소를 찾아야 하므로, 데이터 검색 속도가 느리다.
<aside>
😀 연결 리스트를 직접 구현하지 않아도 대부분 알고리즘 문제를 풀 수 있다.
</aside>
Javascript 배열
- 자바스크립트에서는 배열 기능을 제공한다.
- 자바스크립트 배열은 일반 배열처럼 임의의 인덱스로 직접 접근이 가능하다.