thumbnail
배열(Array) 개념 및 구조
JAVA
2022.05.14.

배열(Array)이란?

같은 자료형을 갖는 여러개의 데이터를 하나의 변수로 모아놓은 데이터의 집합체이다. 논리적으로 생각해보면 아래와 같이 나타낼 수 있다.

Array1

하지만 실제로는 컴퓨터에서 메모리에 표현되는 방식은 아래와 같이 연속적으로 할당되게 된다.

Array2

배열(Array)의 특징

  • 논리적 표현과 물리적 표현의 순서가 같다.
  • 데이터를 조회할 때 인덱스를 이용하여 바로 찾기때문에 검색 속도가 빠르다.
  • 데이터를 삽입/삭제시 데이터의 이동(재구성)이 발생한다.

배열의 시간복잡도

  • 임의 위치 원소 확인 : O(1)
    인덱스를 이용하여 위치를 찾고 바로 확인할 수 있다.
  • 가장 끝에 원소 추가 : O(1)
  • 가장 끝에 원소 삭제 : O(1)
  • 임의 위치에 원소 추가 : O(N)

인덱스 3의 위치에 새로운 원소를 삽입 하려고 하면 그 뒤에 존재하는 모든 원소들은 한 칸씩 뒤로 밀리게 된다.

Array3

  • 임의 위치에 원소 삭제 : O(N)

추가와 마찬가지로 삭제도 O(N)이 걸리는데, 인덱스2의 위치에 원소를 제거시 그 뒤에 모든 원소들은 한 칸씩 앞으로 당겨지게 된다.

Array4

결론

데이터의 개수가 정해져 있을 때 사용하기 용이하며 연결리스트에 비해 검색 속도가 빠르고,
삽입/삭제가 빈번한 작업이 있을 경우에는 연결리스트에 비해 느리다.

Copyright ⓒ 2022 gijoongjang Built with Gatsby